同样在并发和并行

并发(concurrency)和并行(parallelism)他们共同的理念,而时间不是很easy区分,即使在使用时用来表示相同的概念。

网上最流行的解释,并发性是一个人吃三面包。并行三个人吃三面包。

的主要区别这样的理解简要概述,事实上并非太完整。


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


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

强调同一时候性和多处理者。


从架构设计上看。使用并发主要是由于处理资源有限,而多个任务往往存在block情况(比如io block),能够通过适合的调度来隐藏任务的block。即减少响应延迟。

而并行则往往是由于处理资源比較多(多核),通过同一时候执行多个任务来充分利用资源。提高总体的吞吐量。

如今的大数据运算平台如hadoop等就是典型的并行的概念。


因此,某些场合下,既可以组合使用,为了提高整个系统的性能。

这是非常考验当地建筑师。

版权声明:本文博主原创文章。博客,未经同意不得转载。

posted @ 2015-10-03 12:29  zfyouxi  阅读(154)  评论(0编辑  收藏  举报