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

也谈并发和并行

时间:2014-10-09 15:50:28      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:并发   多核   处理器   concurrency   大数据   

并发(concurrency)和并行(parallelism)都是常见的概念,并且很多时候并不容易进行区分,甚至被用作表达同样的概念。

网上最流行的解释,并发是一个人吃三个馒头;并行是三个人吃三个馒头。

这样理解简单概况了主要区别,但其实并不是太完整。


从对象的角度,并发是一种任务分配模式,指的是同一个处理器被调度处理不同的任务,这些任务往往都是同一性质的任务。例如浏览器打开多个页面,浏览器自身虽然是单进程的,但是它可以(一般都使用多线程方式)轮流打开页面,也可以打开一个页面一半后跑去打开另外一个页面,然后再回来。


而并行是一种运行的方式,指的是多个处理器同时处理若干个任务,这些任务往往是不同的任务。例如多核系统,一个核上正在处理视频渲染,另外一个核同时处理了网络收发包。强调同时性和多处理者。


从架构设计上看,使用并发主要是因为处理资源有限,而多个任务往往存在block情况(例如io block),可以通过适合的调度来隐藏任务的block,即降低响应延迟。

而并行则往往是因为处理资源比较多(多核),通过同时运行多个任务来充分利用资源,提高整体的吞吐量。现在的大数据运算平台如hadoop等就是典型的并行的概念。


因此,某些场合下,两者可以结合使用,以提高系统整体的性能。这是很考验架构师的地方。

也谈并发和并行

标签:并发   多核   处理器   concurrency   大数据   

原文地址:http://blog.csdn.net/yeasy/article/details/39930969

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