use of java8.util.concurrent.atomic.LongAdder in project streamsupport by stefan-zobel.
the class LongAdderTest method testAddAndSumMT.
/**
* adds by multiple threads produce correct sum
*/
public void testAddAndSumMT() throws Throwable {
final int incs = 1000000;
final int nthreads = 4;
final ExecutorService pool = Executors.newCachedThreadPool();
LongAdder a = new LongAdder();
CyclicBarrier barrier = new CyclicBarrier(nthreads + 1);
for (int i = 0; i < nthreads; ++i) pool.execute(new AdderTask(a, barrier, incs));
barrier.await();
barrier.await();
long total = (long) nthreads * incs;
long sum = a.sum();
assertEquals(sum, total);
pool.shutdown();
}
use of java8.util.concurrent.atomic.LongAdder in project streamsupport by stefan-zobel.
the class LongAdderTest method testAddAndSum.
/**
* add adds given value to current, and sum returns current value
*/
public void testAddAndSum() {
LongAdder ai = new LongAdder();
ai.add(2);
assertEquals(2, ai.sum());
ai.add(-4);
assertEquals(-2, ai.sum());
}
use of java8.util.concurrent.atomic.LongAdder in project streamsupport by stefan-zobel.
the class SplittableRandomTest method testIntsCount.
/**
* A parallel sized stream of ints generates the given number of values
*/
public void testIntsCount() {
LongAdder counter = new LongAdder();
SplittableRandom r = new SplittableRandom();
long size = 0;
for (int reps = 0; reps < REPS; ++reps) {
counter.reset();
r.ints(size).parallel().forEach(x -> counter.increment());
assertEquals(size, counter.sum());
size += 524959;
}
}
use of java8.util.concurrent.atomic.LongAdder in project streamsupport by stefan-zobel.
the class SplittableRandomTest method testUnsizedLongsCountSeq.
/**
* A sequential unsized stream of longs generates at least 100 values
*/
public void testUnsizedLongsCountSeq() {
LongAdder counter = new LongAdder();
SplittableRandom r = new SplittableRandom();
long size = 100;
r.longs().limit(size).forEach(x -> counter.increment());
assertEquals(size, counter.sum());
}
use of java8.util.concurrent.atomic.LongAdder in project streamsupport by stefan-zobel.
the class SplittableRandomTest method testLongsCount.
/**
* A parallel sized stream of longs generates the given number of values
*/
public void testLongsCount() {
LongAdder counter = new LongAdder();
SplittableRandom r = new SplittableRandom();
long size = 0;
for (int reps = 0; reps < REPS; ++reps) {
counter.reset();
r.longs(size).parallel().forEach(x -> counter.increment());
assertEquals(size, counter.sum());
size += 524959;
}
}
Aggregations