• ForkJoin详解


    1.分支合并 (大数据量的去使用)

     

    1. package com.kuang.forkjoin;
    2. import java.util.concurrent.ExecutionException;
    3. import java.util.concurrent.ForkJoinPool;
    4. import java.util.concurrent.ForkJoinTask;
    5. import java.util.function.LongBinaryOperator;
    6. import java.util.stream.LongStream;
    7. /**
    8. * 程序员分3000 6000(forkjoin) 9000(Stream 并行流) 等
    9. */
    10. public class Test {
    11. public static void main(String[] args) throws ExecutionException, InterruptedException {
    12. // test1();11705ms
    13. // test2();7077ms
    14. test3();//207ms
    15. }
    16. //普通程序员 11705
    17. public static void test1(){
    18. long start = System.currentTimeMillis();
    19. Long sum=0L;
    20. for (Long i = 1L; i < 10_0000_0000; i++) {
    21. sum+=i;
    22. }
    23. long end = System.currentTimeMillis();
    24. System.out.println("sum="+sum+"时间:"+(end-start));
    25. }
    26. //会使用ForkJoin的 7077
    27. public static void test2() throws ExecutionException, InterruptedException {
    28. long start = System.currentTimeMillis();
    29. ForkJoinPool forkJoinPool = new ForkJoinPool();
    30. ForkJoinTask task = new ForkJoinDemo(0l, 10_0000_0000l);
    31. ForkJoinTask submit = forkJoinPool.submit(task);//提交任务
    32. Long sum = submit.get();
    33. //forkJoinPool.execute(task);
    34. // Long aLong = task.get();//拿到返回值
    35. long end = System.currentTimeMillis();
    36. System.out.println("sum="+sum+"时间:"+(end-start));
    37. }
    38. //Steam并行流
    39. public static void test3(){
    40. long start = System.currentTimeMillis();
    41. //range() (]
    42. long reduce = LongStream.rangeClosed(1L, 10_0000_0000L).parallel().reduce(0, Long::sum);
    43. //1+到1000000000L
    44. long end = System.currentTimeMillis();
    45. System.out.println("sum="+reduce+"时间:"+(end-start));
    46. }
    47. }

  • 相关阅读:
    Linux内核中ideapad-laptop.c文件全解析10
    单链表的递归详解 (leetcode习题+ C++实现)
    AP5101C 高压线性恒流 LED电源驱动IC 3D打印机显示灯驱动器
    蚁群算法
    WPF 控件的缩放和移动
    Gly-Gly-Arg, 54944-27-3/55033-48-2
    DVWA -xss
    7.4缓存
    使用华为eNSP组网试验⑴-通过Vlan进行网络设备间通讯
    C++官网 Information C++ Language FAQ
  • 原文地址:https://blog.csdn.net/qq_53374893/article/details/133203236