diff --git a/core-java/src/test/java/com/baeldung/concurrent/accumulator/LongAccumulatorTest.java b/core-java/src/test/java/com/baeldung/concurrent/accumulator/LongAccumulatorTest.java index 46e107b607..3a0092cf24 100644 --- a/core-java/src/test/java/com/baeldung/concurrent/accumulator/LongAccumulatorTest.java +++ b/core-java/src/test/java/com/baeldung/concurrent/accumulator/LongAccumulatorTest.java @@ -17,25 +17,26 @@ public class LongAccumulatorTest { public void givenLongAccumulator_whenApplyActionOnItFromMultipleThrads_thenShouldProduceProperResult() throws InterruptedException { //given ExecutorService executorService = Executors.newFixedThreadPool(8); - LongBinaryOperator higherValueFinder = (currentValue, previousValue) -> currentValue > previousValue ? currentValue : previousValue; - LongAccumulator accumulator = new LongAccumulator(higherValueFinder, 0L); - + 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); + .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); + - assertEquals(accumulator.get(), 100); } }