![Java多线程编程核心技术(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/745/42637745/b_42637745.jpg)
上QQ阅读APP看书,第一时间看更新
1.16 并发与并行
并发是指一个CPU同时处理多个任务。比如使用单核CPU,那么工作中的多个线程之间其实还是以按顺序的方式被CPU执行,运行效果如图1-70所示。
![](https://epubservercos.yuewen.com/204B22/22139293909121606/epubprivate/OEBPS/Images/1-70.jpg?sign=1739311425-u5OPyYZbcBEtPzhGoV8Ejz0LSnQkNfaF-0-4b1cd647c48effba28608c67a3c34ff4)
图1-70 并发处理方式(一)
另一种展示方式如图1-71所示。
为什么在平时使用的过程中感受不到这种处理呢?操作系统中的线程调度器将CPU时间片分配给不同的线程使用,由于CPU在线程间的切换速度非常快,所以使用者会认为多个任务在同时运行,这种线程轮流使用CPU时间片的处理方式称为并发。
并行是指多个CPU或者多核的CPU同时处理多个不同的任务,运行效果如图1-72所示。
![](https://epubservercos.yuewen.com/204B22/22139293909121606/epubprivate/OEBPS/Images/1-71.jpg?sign=1739311425-odmCxcqpa1UVyUiJNAdO3qfs5dJgLdkH-0-420f7fea2d396ac9ced6287184da15b7)
图1-71 并发处理方式(二)
![](https://epubservercos.yuewen.com/204B22/22139293909121606/epubprivate/OEBPS/Images/1-72.jpg?sign=1739311425-sqJY57tqc4eg4Lq64VdL6PF0B1l1tXbQ-0-252eb4b06b28f0f809b60cd9f9a53699)
图1-72 并行处理方式(一)
另一种展示方式如图1-73所示。
![](https://epubservercos.yuewen.com/204B22/22139293909121606/epubprivate/OEBPS/Images/1-73.jpg?sign=1739311425-xxd7iVZ7VIZifBJQ3GuHFaGAyCEF7MgC-0-3f93c28ecd0643397c3d8bfce4f631d1)
图1-73 并行处理方式(二)
在宏观上并行,在微观上还是有并发的存在,因为每个CPU还是以并发的方式处理多个任务,只不过有多个CPU在同时并行处理。
比如A同学,一边打游戏,一边吃饭,一边写作业就是并发。
比如A同学,找了B同学代打游戏,找了C同学代写作业,自己吃饭,这就是并行。
综上,并发是逻辑上的同时发生,而并行是物理上的同时发生。