1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ConcurrentMap<String, String> map1 = new ConcurrentHashMap<>(); ForkJoinPool customThreadPool = new ForkJoinPool(10);
int[] values1 = customThreadPool.submit(() -> IntStream.range(1, 1000000).parallel().filter(x -> { map1.put(Thread.currentThread().toString(), String.valueOf(x)); return (x % 2 == 1); }).toArray()).get();
System.out.println(map1.keySet()); System.out.println("thread size:" + map1.keySet().size() + ", array size:" + values1.length); customThreadPool.shutdown();
Output: [Thread[ForkJoinPool-1-worker-10,5,main], Thread[ForkJoinPool-1-worker-15,5,main], Thread[ForkJoinPool-1-worker-11,5,main], Thread[ForkJoinPool-1-worker-8,5,main], Thread[ForkJoinPool-1-worker-2,5,main], Thread[ForkJoinPool-1-worker-9,5,main], Thread[ForkJoinPool-1-worker-4,5,main], Thread[ForkJoinPool-1-worker-1,5,main], Thread[ForkJoinPool-1-worker-6,5,main], Thread[ForkJoinPool-1-worker-13,5,main]] thread size:10, array size:500000
|