代码
import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.ForkJoinPool;public class ParallelTest { public static void main(String[] args) { System.out.println("线程数为"+ForkJoinPool.getCommonPoolParallelism()); for(int j=0; j<10; j++){ List<Integer> result = new ArrayList<>(); //测试forkjoin耗时 List<Integer> list = new ArrayList<>(); for (int i = 0; i < 20; i++) { list.add(i); } long s = System.currentTimeMillis(); Random random = new Random(); list.parallelStream().forEach(i -> { try { result.add(i); int time = random.nextInt(100); System.out.println("等待时间为: " + time); Thread.sleep(time); } catch (InterruptedException e) { e.printStackTrace(); } }); long e = System.currentTimeMillis(); System.out.print(j + ": forkjoin:" + (e - s)); System.out.print("\t list的长度为:" + list.size()); System.out.print("\t result的长度为:" + result.size()); System.out.println(""); }// for(int i=0; i<result.size(); i++){// System.out.printf("第%d个元素的值为%d\n", i, result.get(i));// } }}
参考资料