并发兴起的背景以及并发并行概念及两者的区别

2018-02-05  本文已影响27人  每天学点编程

请关注我的微信公众号

个人微信公众号

技术交流群 (仅作技术交流):642646237

​请关注我的头条号:

背景

“多核危机”导致了并发编程的复兴——利用多核,发掘并行执行的潜力

什么是并发

并发程序含有多个逻辑上的独立执行块,它们可以独立地并行执行,也可以串行执行。

并发 VS 并行

并发是问题域中的概念——程序需要被设计成能够处理多个同时(或者几乎同时)发生的事件;
并行则是方法域中的概念——通过将问题中的多个部分并行执行,来加速解决问题。

并发是同一时间应对(dealing with)多件事情的能力;
并行是同一时间动手做(doing)多件事情的能力。

辨别何为并发

班级设计了自己的贺卡并要批量制作,让每位学生制作五枚贺卡。这种方法是并行,而(从整体看)不是并发,因为这个过程整体来说只有一个任务。

并发 VS 并行

并发和并行经常被混淆的原因之一是,传统的“线程与锁”模型并没有显式支持并行。如果要用线程与锁模型为多核进行开发,唯一的选择就是写一个并发的程序,并行地运行在多核上。

并发程序的执行通常是不确定的,它会随着事件时序的改变而给出不同的结果。对于真正的并发程序,不确定性是其与生俱来且伴随始终的属性。与之相反,并行程序可能是确定的。用支持并行的编程语言可以写出并行程序,而不引入不确定性。

上一篇下一篇

猜你喜欢

热点阅读