美文网首页
线程 -- 并发和并行

线程 -- 并发和并行

作者: glRu | 来源:发表于2020-07-27 09:23 被阅读0次

    1. 并发和并行

    为什么操作系统上可以同时运行多个程序?

    这是因为无论是单CPU还是多CPU,操作系统都营造出了可以同时运行多个程序的假象。实际的过程操作系统对进程的调度以及CPU的快速上下文切换实现的:每个进程执行一会就先停下来,然后CPU切换到下个被操作系统调度到的进程上使之运行。因为切换的很快,使得用户认为操作系统一直在服务自己的程序。

    并发(concurrent)

    指的是多个程序可以同时运行的现象,更细化的是多进程可以同时运行或者多指令可以同时运行。

    并发的重点在于它是一种现象。并发描述的是多进程同时运行的现象。

    并行(Parallel)

    当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行。

    并行和并发的区别:

    它们虽然都说是"多个进程同时运行",但是它们的"同时"不是一个概念。

    并行的"同时"是同一时刻可以多个进程在运行(处于running),并行的多个任务之间是不互相抢占资源的

    并发的"同时"是经过上下文快速切换,使得看上去多个进程同时都在运行的现象,是一种OS欺骗用户的现象。

    串行模式

    串行表示所有任务都一一按先后顺序进行。一次只能取得一个任务,并执行这个任务。

    串行意味着必须先装完一车柴才能运送这车柴,只有运送到了,才能卸下这车柴,并且只有完成了这整个三个步骤,才能进行下一个步骤。

    相关文章

      网友评论

          本文标题:线程 -- 并发和并行

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