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

  • 相关阅读:
    postman调试参数格式
    Dapper.Contrib.Extensions扩展
    kafka dashborad 安装流程(kafka_exporter + prometheus + grafana)
    Kafka学习入门(windows环境下)
    Windows环境下载安装Kafka
    Windows环境下Zookeeper的安装及启动
    hdu4087(概率dp)
    poj3162(树形dp+线段树)
    Gym
    牛客小白月赛13 小A的柱状图(单调栈)
  • 原文地址:https://www.cnblogs.com/vingLiu/p/12154255.html
Copyright © 2011-2022 走看看