|
|
|
@ -41,7 +41,7 @@
|
|
|
|
|
|
|
|
|
|
#### 多核心并发
|
|
|
|
|
|
|
|
|
|
当核心增多到 `N` 时,操作系统同时在进行的任务肯定远不止 `N` 个,这些任务将被放入 `M` 个线程队列中,接着交给 `N` 个 CPU 核心去执行,最后实现了 `M:N` 的处理模型,在这种情况下,**并发跟并行时同时在发生的,所有用户任务从表面来看都在并发的运行,其实实际上,同一时刻只有 `N` 个任务能被同时并行的处理**。
|
|
|
|
|
当核心增多到 `N` 时,操作系统同时在进行的任务肯定远不止 `N` 个,这些任务将被放入 `M` 个线程队列中,接着交给 `N` 个 CPU 核心去执行,最后实现了 `M:N` 的处理模型,在这种情况下,**并发与并行是同时在发生的,所有用户任务从表面来看都在并发的运行,但实际上,同一时刻只有 `N` 个任务能被同时并行的处理**。
|
|
|
|
|
|
|
|
|
|
看到这里,相信大家已经明白两者的区别,那么我们下面给出一个正式的定义(该定义摘选自<<并发的艺术>>)。
|
|
|
|
|
|
|
|
|
|