java.util.concurrent.atomic.LongAccumulator Java Examples
The following examples show how to use
java.util.concurrent.atomic.LongAccumulator.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: java-concurrent-programming Author: guanpengchn File: LongAccumulatorDemo.java License: MIT License | 6 votes |
public static void main(String[] args) throws InterruptedException { LongAccumulator accumulator = new LongAccumulator(Long::max, Long.MIN_VALUE); Thread[] ts = new Thread[1000]; for(int i=0;i<1000;i++){ ts[i] = new Thread(()->{ Random random = new Random(); long value = random.nextLong(); accumulator.accumulate(value); }); ts[i].start(); } for(int i=0;i<1000;i++){ ts[i].join(); } System.out.println(accumulator.longValue()); }
Example #2
Source Project: LearningOfThinkInJava Author: sean417 File: AccumulatorTest.java License: Apache License 2.0 | 6 votes |
public static void main(String[] args) throws Exception{ LongAccumulator accumulator=new LongAccumulator(Long::max,Long.MIN_VALUE); Thread[] ts=new Thread[100]; for(int i=0;i<100;i++){ ts[i]=new Thread(()->{ Random random=new Random(); long value=random.nextLong(); accumulator.accumulate(value); }); ts[i].start(); } for(int i=0;i<100;i++){ ts[i].join(); } System.out.println(accumulator.longValue()); }
Example #3
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 6 votes |
/** * accumulates by multiple threads produce correct result */ public void testAccumulateAndGetMT() { final int incs = 1000000; final int nthreads = 4; final ExecutorService pool = Executors.newCachedThreadPool(); LongAccumulator a = new LongAccumulator(Long::max, 0L); Phaser phaser = new Phaser(nthreads + 1); for (int i = 0; i < nthreads; ++i) pool.execute(new AccTask(a, phaser, incs)); phaser.arriveAndAwaitAdvance(); phaser.arriveAndAwaitAdvance(); long expected = incs - 1; long result = a.get(); assertEquals(expected, result); pool.shutdown(); }
Example #4
Source Project: LearningOfThinkInJava Author: sean417 File: AccumulatorTest.java License: Apache License 2.0 | 6 votes |
public static void main(String[] args) throws Exception{ LongAccumulator accumulator=new LongAccumulator(Long::max,Long.MIN_VALUE); Thread[] ts=new Thread[100]; for(int i=0;i<100;i++){ ts[i]=new Thread(()->{ Random random=new Random(); long value=random.nextLong(); accumulator.accumulate(value); }); ts[i].start(); } for(int i=0;i<100;i++){ ts[i].join(); } System.out.println(accumulator.longValue()); }
Example #5
Source Project: j2objc Author: google File: LongAccumulatorTest.java License: Apache License 2.0 | 6 votes |
/** * accumulates by multiple threads produce correct result */ public void testAccumulateAndGetMT() { final int incs = 1000000; final int nthreads = 4; final ExecutorService pool = Executors.newCachedThreadPool(); LongAccumulator a = new LongAccumulator(Long::max, 0L); Phaser phaser = new Phaser(nthreads + 1); for (int i = 0; i < nthreads; ++i) pool.execute(new AccTask(a, phaser, incs)); phaser.arriveAndAwaitAdvance(); phaser.arriveAndAwaitAdvance(); long expected = incs - 1; long result = a.get(); assertEquals(expected, result); pool.shutdown(); }
Example #6
Source Project: incubator-pinot Author: apache File: QueryScheduler.java License: Apache License 2.0 | 6 votes |
/** * Constructor to initialize QueryScheduler * @param queryExecutor QueryExecutor engine to use * @param resourceManager for managing server thread resources * @param serverMetrics server metrics collector */ public QueryScheduler(@Nonnull Configuration config, @Nonnull QueryExecutor queryExecutor, @Nonnull ResourceManager resourceManager, @Nonnull ServerMetrics serverMetrics, @Nonnull LongAccumulator latestQueryTime) { Preconditions.checkNotNull(config); Preconditions.checkNotNull(queryExecutor); Preconditions.checkNotNull(resourceManager); Preconditions.checkNotNull(serverMetrics); this.serverMetrics = serverMetrics; this.resourceManager = resourceManager; this.queryExecutor = queryExecutor; this.latestQueryTime = latestQueryTime; this.queryLogRateLimiter = RateLimiter.create(config.getDouble(QUERY_LOG_MAX_RATE_KEY, DEFAULT_QUERY_LOG_MAX_RATE)); this.numDroppedLogRateLimiter = RateLimiter.create(1.0d); this.numDroppedLogCounter = new AtomicInteger(0); LOGGER.info("Query log max rate: {}", queryLogRateLimiter.getRate()); }
Example #7
Source Project: tutorials Author: eugenp File: LongAccumulatorUnitTest.java License: MIT License | 6 votes |
@Test public void givenLongAccumulator_whenApplyActionOnItFromMultipleThrads_thenShouldProduceProperResult() throws InterruptedException { // given ExecutorService executorService = Executors.newFixedThreadPool(8); LongBinaryOperator sum = Long::sum; LongAccumulator accumulator = new LongAccumulator(sum, 0L); int numberOfThreads = 4; int numberOfIncrements = 100; // when Runnable accumulateAction = () -> IntStream.rangeClosed(0, numberOfIncrements).forEach(accumulator::accumulate); for (int i = 0; i < numberOfThreads; i++) { executorService.execute(accumulateAction); } // then executorService.awaitTermination(500, TimeUnit.MILLISECONDS); executorService.shutdown(); assertEquals(accumulator.get(), 20200); }
Example #8
Source Project: dragonwell8_jdk Author: alibaba File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #9
Source Project: TencentKona-8 Author: Tencent File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #10
Source Project: native-obfuscator Author: radioegor146 File: Serial.java License: GNU General Public License v3.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #11
Source Project: jdk8u60 Author: chenghanpeng File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #12
Source Project: fdb-record-layer Author: FoundationDB File: ResolverMappingReplicator.java License: Apache License 2.0 | 5 votes |
/** * Copy the mappings stored in a {@link LocatableResolver} to the specified replica. * * @param replica The {@link LocatableResolver} to copy to. * @return A future that will complete when the copy is finished. */ public CompletableFuture<Void> copyToAsync(@Nonnull final LocatableResolver replica) { if (!replica.getDatabase().equals(runner.getDatabase())) { throw new IllegalArgumentException("copy must be within same database"); } final LongAccumulator maxAccumulator = new LongAccumulator(Long::max, 0L); final AtomicInteger counter = new AtomicInteger(); return copyInternal(replica, maxAccumulator, counter) .thenCompose(ignore -> replica.setWindow(maxAccumulator.get())); }
Example #13
Source Project: java-tutorial Author: jarvisqi File: ConcurrentMapTest.java License: MIT License | 5 votes |
/** * LongAccumulator以类型为LongBinaryOperatorlambda表达式构建 * 而不是仅仅执行加法操作 */ public void longAccumulatorDemo() { ExecutorService executor = Executors.newFixedThreadPool(2); LongBinaryOperator op = (x, y) -> 2 * x + y; LongAccumulator accumulator = new LongAccumulator(op, 1L); IntStream.range(0, 10).forEach(i -> executor.submit(() -> accumulator.accumulate(i))); SynchronizationLocks.stopExecutor(executor); // => 2539 System.out.println(accumulator.getThenReset()); }
Example #14
Source Project: openjdk-jdk8u Author: AdoptOpenJDK File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #15
Source Project: openjdk-jdk8u-backup Author: AdoptOpenJDK File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #16
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #17
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
/** * accumulate accumulates given value to current, and get returns current value */ public void testAccumulateAndGet() { LongAccumulator ai = new LongAccumulator(Long::max, 0L); ai.accumulate(2); assertEquals(2, ai.get()); ai.accumulate(-4); assertEquals(2, ai.get()); ai.accumulate(4); assertEquals(4, ai.get()); }
Example #18
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
/** * reset() causes subsequent get() to return zero */ public void testReset() { LongAccumulator ai = new LongAccumulator(Long::max, 0L); ai.accumulate(2); assertEquals(2, ai.get()); ai.reset(); assertEquals(0, ai.get()); }
Example #19
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
/** * getThenReset() returns current value; subsequent get() returns zero */ public void testGetThenReset() { LongAccumulator ai = new LongAccumulator(Long::max, 0L); ai.accumulate(2); assertEquals(2, ai.get()); assertEquals(2, ai.getThenReset()); assertEquals(0, ai.get()); }
Example #20
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
/** * toString returns current value. */ public void testToString() { LongAccumulator ai = new LongAccumulator(Long::max, 0L); assertEquals("0", ai.toString()); ai.accumulate(1); assertEquals(Long.toString(1), ai.toString()); }
Example #21
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
/** * intValue returns current value. */ public void testIntValue() { LongAccumulator ai = new LongAccumulator(Long::max, 0L); assertEquals(0, ai.intValue()); ai.accumulate(1); assertEquals(1, ai.intValue()); }
Example #22
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
/** * longValue returns current value. */ public void testLongValue() { LongAccumulator ai = new LongAccumulator(Long::max, 0L); assertEquals(0, ai.longValue()); ai.accumulate(1); assertEquals(1, ai.longValue()); }
Example #23
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
/** * floatValue returns current value. */ public void testFloatValue() { LongAccumulator ai = new LongAccumulator(Long::max, 0L); assertEquals(0.0f, ai.floatValue()); ai.accumulate(1); assertEquals(1.0f, ai.floatValue()); }
Example #24
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
/** * doubleValue returns current value. */ public void testDoubleValue() { LongAccumulator ai = new LongAccumulator(Long::max, 0L); assertEquals(0.0, ai.doubleValue()); ai.accumulate(1); assertEquals(1.0, ai.doubleValue()); }
Example #25
Source Project: openjdk-jdk9 Author: AdoptOpenJDK File: LongAccumulatorTest.java License: GNU General Public License v2.0 | 5 votes |
public void run() { phaser.arriveAndAwaitAdvance(); LongAccumulator a = acc; for (int i = 0; i < incs; ++i) a.accumulate(i); result = a.get(); phaser.arrive(); }
Example #26
Source Project: jdk8u-jdk Author: lambdalab-mirror File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #27
Source Project: hottub Author: dsrg-uoft File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #28
Source Project: openjdk-8-source Author: keerath File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #29
Source Project: openjdk-8 Author: bpupadhyaya File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }
Example #30
Source Project: jdk8u_jdk Author: JetBrains File: Serial.java License: GNU General Public License v2.0 | 5 votes |
static void testLongAccumulator() { LongBinaryOperator plus = (LongBinaryOperator & Serializable) (x, y) -> x + y; LongAccumulator a = new LongAccumulator(plus, -2); a.accumulate(34); LongAccumulator result = echo(a); if (result.get() != a.get()) throw new RuntimeException("Unexpected value"); a.reset(); result.reset(); if (result.get() != a.get()) throw new RuntimeException("Unexpected value after reset"); checkSerialClassName(a, "java.util.concurrent.atomic.LongAccumulator$SerializationProxy"); }