美文网首页
并发兴起的背景以及并发并行概念及两者的区别

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

作者: 每天学点编程 | 来源:发表于2018-02-05 08:37 被阅读27次

    请关注我的微信公众号

    个人微信公众号

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

    ​请关注我的头条号:

    背景

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

    什么是并发

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

    并发 VS 并行

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

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

    辨别何为并发

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

    并发 VS 并行

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

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

    相关文章

      网友评论

          本文标题:并发兴起的背景以及并发并行概念及两者的区别

          本文链接:https://www.haomeiwen.com/subject/cshmzxtx.html