|
|
|
@ -4,7 +4,7 @@
|
|
|
|
|
|
|
|
|
|
并行和并发其实并不难,但是也给一些用户造成了困扰,因此我们专门开辟一个章节,用于讲清楚这两者的区别。
|
|
|
|
|
|
|
|
|
|
`Erlang` 之父 [`Joe Armstrong`](<https://en.wikipedia.org/wiki/Joe_Armstrong_(programmer)>)(伟大的异步编程先驱,开创一个时代的殿堂级计算机科学家,我还犹记得当年刚学到 `Erlang` 时的震撼,respect!)用一张 5 岁小孩都能看到的图片解释了并发与并行的区别:
|
|
|
|
|
`Erlang` 之父 [`Joe Armstrong`](<https://en.wikipedia.org/wiki/Joe_Armstrong_(programmer)>)(伟大的异步编程先驱,开创一个时代的殿堂级计算机科学家,我还犹记得当年刚学到 `Erlang` 时的震撼,respect!)用一张 5 岁小孩都能看懂的图片解释了并发与并行的区别:
|
|
|
|
|
|
|
|
|
|
<img alt="" src="https://pic1.zhimg.com/80/f37dd89173715d0e21546ea171c8a915_1440w.png" class="center" />
|
|
|
|
|
|
|
|
|
@ -19,7 +19,7 @@
|
|
|
|
|
|
|
|
|
|
## CPU 多核
|
|
|
|
|
|
|
|
|
|
现在的个人计算机动辄拥有十来个核心(M1 Max/Intel 12 代),如果使用串行的方式那真是太低调了,因此我们把各种任务简单分成多个队列,每个队列都交给一个 CPU 核心去执行,当某个 CPU 核心没有任务时,它还能去其它核心的队列中偷任务(真·老黄牛),这样就实现了并行化处理。
|
|
|
|
|
现在的个人计算机动辄拥有十来个核心(M1 Max/Intel 12 代),如果使用串行的方式那真是太低效了,因此我们把各种任务简单分成多个队列,每个队列都交给一个 CPU 核心去执行,当某个 CPU 核心没有任务时,它还能去其它核心的队列中偷任务(真·老黄牛),这样就实现了并行化处理。
|
|
|
|
|
|
|
|
|
|
#### 单核心并发
|
|
|
|
|
|
|
|
|
|