码迷,mamicode.com
首页 > 其他好文 > 详细

并发执行程序的优势

时间:2019-11-11 21:52:16      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:延时   details   应用   模式   链接   并发处理   时钟周期   状态   分配   

 

1、业务需求

 

2、性能需要

 

3、可简化任务调度

 

4、并行程序在多核心CPU有优势:

 

a、比如因为IO操作遇到了阻塞,CPU可以转去执行其他线程,这时并发的优点就显示出来了:更高效的利用CPU,提高程序的响应速度。

 

b、java线程机制是抢占式的,会为每个线程分配时间片。

 

c、由于I/O等待,CPU较空闲,通过多进程/多线程让CPU忙起来,提升处理速度。通过多路复用,利用I/O等待的时间进行运算,让CPU干活,提升处理速度。

 

d、使用多路复用只能跑满一个核心,必须使用多进程/多线程才能充分利用多核。

 

e、利用Map/Reduce模式将任务分发到许多网络节点上,同时并行计算,通过对每个节点的返回值进行归并计算得到最终结果。

 

f、并发可以提高吞吐量:

 

假设每个请求执行100ms,顺序执行10个请求共需要1s,单核服务器并发处理10个请求,假设平均分配时间片10ms,请求1到请求10将在900ms到100ms间执行完毕。吞吐量没有任何提高。并发越多,所有请求都变得非常缓慢。(考虑到任务的场景切换开销,吞吐量还会下降,需要超过1s才能执行完毕)。

 

大多数web型应用都是IO密集型。

 

执行请求100ms当中,可能有80ms花在IO上,只有20ms消耗CPU时钟周期,最好情况下,请求1到请求10将在190ms到280ms间执行完毕,吞吐量极大提高。

 

IO密集型应用,大部分CPU花在等待IO上了,所以并发可以有效提高系统吞吐量。

 

IO操作的延时远远高于CPU时钟周期内存访问,所以一旦web请求涉及IO操作,CPU处于wait状态,被浪费了。
————————————————
版权声明:本文为CSDN博主「c_lanxiaofang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c_lanxiaofang/article/details/79309504

 

并发执行程序的优势

标签:延时   details   应用   模式   链接   并发处理   时钟周期   状态   分配   

原文地址:https://www.cnblogs.com/szj666/p/11838270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!