BAEL-4876: Parallel stream examples added
This commit is contained in:
parent
442e5c1a7f
commit
d160a09b01
|
@ -47,6 +47,7 @@
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
<lombok.version>1.18.20</lombok.version>
|
||||||
<!-- testing -->
|
<!-- testing -->
|
||||||
<assertj.version>3.6.1</assertj.version>
|
<assertj.version>3.6.1</assertj.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.baeldung.streams.parallel;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ParallelStream {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
List<Integer> listOfNumbers = List.of(1, 2, 3, 4);
|
||||||
|
listOfNumbers.parallelStream().forEach(number ->
|
||||||
|
System.out.println(number + " " + Thread.currentThread().getName())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.baeldung.streams.parallel;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SequentialStream {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
List<Integer> listOfNumbers = List.of(1, 2, 3, 4);
|
||||||
|
listOfNumbers.stream().forEach(number ->
|
||||||
|
System.out.println(number + " " + Thread.currentThread().getName())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
package com.baeldung.streams.parallel;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.ForkJoinPool;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
class ForkJoinUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenSequentialStreamOfNumbers_whenReducingSumWithIdentityFive_thenResultIsCorrect() {
|
||||||
|
List<Integer> listOfNumbers = List.of(1, 2, 3, 4);
|
||||||
|
int sum = listOfNumbers.stream().reduce(5, Integer::sum);
|
||||||
|
assertThat(sum).isEqualTo(15);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenParallelStreamOfNumbers_whenReducingSumWithIdentityFive_thenResultIsNotCorrect() {
|
||||||
|
List<Integer> listOfNumbers = List.of(1, 2, 3, 4);
|
||||||
|
int sum = listOfNumbers.parallelStream().reduce(5, Integer::sum);
|
||||||
|
assertThat(sum).isNotEqualTo(15);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenParallelStreamOfNumbers_whenReducingSumWithIdentityZero_thenResultIsCorrect() {
|
||||||
|
List<Integer> listOfNumbers = List.of(1, 2, 3, 4);
|
||||||
|
int sum = listOfNumbers.parallelStream().reduce(0, Integer::sum) + 5;
|
||||||
|
assertThat(sum).isEqualTo(15);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenParallelStreamOfNumbers_whenUsingCustomThreadPool_thenResultIsCorrect()
|
||||||
|
throws InterruptedException, ExecutionException {
|
||||||
|
List<Integer> listOfNumbers = List.of(1, 2, 3, 4);
|
||||||
|
ForkJoinPool customThreadPool = new ForkJoinPool(4);
|
||||||
|
int sum = customThreadPool.submit(
|
||||||
|
() -> listOfNumbers.parallelStream().reduce(0, Integer::sum)).get();
|
||||||
|
customThreadPool.shutdown();
|
||||||
|
assertThat(sum).isEqualTo(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue