fork-join框架

 

图1.背景简绍

 

图2

图3

总结: 图1到图3说明cpu  根据摩尔定律,随机主频的不断提高,软件不需做任何改变就能得到性能的提升。但是到达一定的时间主频已经到达极限,没有办法再提升了,只能依靠 增加cpu 核数来提高性能了。但是实际中的情况是,生产商可以加更多的核数,公司也可以买更多的核数,但是,软件缺没有做好准备, fork-join 闪亮登场了。这个时候只能通过改变代码来实现性能的提高。

图4

随着硬件的发展,软件也不断完善,尤其是java

图5

并发和并行的理解。并发是cpu间的切换,并行是同时执行。 并发要抢资源。不管是并发还是并行都是最大化cpu利用率.

图6

图7

图8

图9

总结:图7到图9 采用单线程的模式来解决这个数组相加的问题。

图10

图11

 33行构建20万长度的数组,34 行 算出线程数,37 行创建一个固定线程池的。 39行求和;  创建两个数组,一个是任务数组tasks,一个是求和的结果数组sums,大小为线程数。 遍历线程数,提交任务 提交任务的传参数为数组的开始值,和结束值,和数组。分段例如 0到1000交给一个线程处理,1000到2000交给一个线程处理。 最后sums数组接收值,再次遍历累加。图13

图12

 

图13

总结:图11到图13 使用并发框架来实现多核cpu的数组求和功能。思想是 

图14

能不能想图14这样再次分段。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值