zoukankan      html  css  js  c++  java
  • ForkJoin框架的最佳实现方式(未完结)

    历史背景:

    在2001年之前,大部分服务器都是单核的,并不是多核。(虽然ForkJoin的实现思想已经在2001年之前已经出现了),一直到jdk1.7的时候(2011年),才将ForkJoin的是实现代码加入到jdk的juc包中!(源码中的实现逻辑很复杂),因为2011年,多核cpu已经非常普遍了,并行处理有用武之地了!

    1、为什么出现ForkJoin框架?

    为了充分利用多核cpu的性能,并行处理任务。

    2、ForkJoin和ThreadPool之间有什么关系?

    ThreadPool和ForkJoin两者互补的关系。

    就是有些业务场景用ThreadPool合适,有些业务场景用ForkJoin合适。

    例如:实现一个非常大的数组的归并排序,这种场景,使用ForkJoin更加合适(有递归)。如果使用ThreadPool,实现的逻辑就很复杂。

    3、如何使用ForkJoin的Api?

    4、ForkJoin的最佳实践方式是怎样?

    4.1 (不是最佳实践的方式)在任务切分的时候,每切分一个任务,都新建线程去执行,而主线程一直在等待结果返回。主线程的资源就浪费了。

         (最佳实践的方式)在任务切分的时候,一边是用新建的线程去执行,另外一边的任务,都用主线程去执行。充分利用主线这个资源,节省线程数量。

    5、总结

    2018年写的文章

    http://blog.sina.com.cn/s/blog_6f5e71b30102xfou.html

  • 相关阅读:
    Java如何遍历二维数据
    Java标识符中常见的命名规则
    Java中常量的概念
    Java的数据类型
    Java中的方法是什么以及方法的书写格式
    Java中什么是构造方法
    Java中继承的概念
    Java中的匿名对象代码实例
    Java集合案例(产生不重复随机数)
    Java中集合的初等案例
  • 原文地址:https://www.cnblogs.com/vingLiu/p/12154255.html
Copyright © 2011-2022 走看看