1、首先并行和并发都是 能更有效的完成 多线程任务的 方式,但是两者有一些区别。
2、两者的主要区别在于是否 “同时” 进行多个任务。
简单的说:
- 并发是交替做不同事物的能力。
- 并行是同时做不同事物的能力。
从主体上说:
- 并发是同一实体上的多个事件。如:一个老师交替辅导三个学生,辅导完学生a,在a消化知识的同时,老师辅导另一个学生。
- 并行是多个实体上的多个事件。如:三个老师同时辅导三个学生。
从代码角度上来说:
- 并发是不同代码块交替执行。
- 并行是不同代码块同时执行。
3、并发看似“同时”在进行,实则不是。
- 这里需要提出CPU的时间观念,CPU具有巨大的潜力,处理效率是很高很高的。人眼中的1秒钟,在CPU眼里像是度过了漫长的时间。
- 并发实际上是CPU在多个线程之间 高速的 随机的 切换处理,只是从人的角度看,貌似同时在进行。
参考:https://blog.csdn.net/qq_27825451/article/details/78850336