代码

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Random;
  4. import java.util.concurrent.ForkJoinPool;
  5. public class ParallelTest {
  6. public static void main(String[] args) {
  7. System.out.println("线程数为"+ForkJoinPool.getCommonPoolParallelism());
  8. for(int j=0; j<10; j++){
  9. List<Integer> result = new ArrayList<>();
  10. //测试forkjoin耗时
  11. List<Integer> list = new ArrayList<>();
  12. for (int i = 0; i < 20; i++) {
  13. list.add(i);
  14. }
  15. long s = System.currentTimeMillis();
  16. Random random = new Random();
  17. list.parallelStream().forEach(i -> {
  18. try {
  19. result.add(i);
  20. int time = random.nextInt(100);
  21. System.out.println("等待时间为: " + time);
  22. Thread.sleep(time);
  23. } catch (InterruptedException e) {
  24. e.printStackTrace();
  25. }
  26. });
  27. long e = System.currentTimeMillis();
  28. System.out.print(j + ": forkjoin:" + (e - s));
  29. System.out.print("\t list的长度为:" + list.size());
  30. System.out.print("\t result的长度为:" + result.size());
  31. System.out.println("");
  32. }
  33. // for(int i=0; i<result.size(); i++){
  34. // System.out.printf("第%d个元素的值为%d\n", i, result.get(i));
  35. // }
  36. }
  37. }

参考资料