并发执行程序的优势
Posted szj666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发执行程序的优势相关的知识,希望对你有一定的参考价值。
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
以上是关于并发执行程序的优势的主要内容,如果未能解决你的问题,请参考以下文章