生活例子
吃饭的时候突然有电话打来,这时你有以下几种选择:
1.先把饭吃完,吃完之后再去接电话。
2.停止吃饭,去接电话,接完电话再来吃饭。
3.在吃饭的时候也在接电话
并发与并行的前提条件
并发与并行的前提条件:是否支持多个事件同时发生
案例分析
你在吃饭的时候也有电话打了过来,虽然两个事件同时发生了,但如果你是吃完了饭再去接的电话,显然对于你自身而言,你是不支持这两件事同时发生的,所以你不支持并发也不支持并行。
而如果你选择停止吃饭,去接电话,然后再来吃饭,那么你是支持两件事同时发生的,并且是按一定顺序交替执行事件,所以你支持并发。
最后如果你在吃饭的同时也把电话接了,说明你也是支持两件事同时发生的,并且是在同一时刻一起执行事件,所以你支持并行。
并发与并行区别
并发:交替做不同事件,也即不同的代码块交替执行
并行:同时做不同事件,也即不同的代码块同时执行
并发和并行的意义
并发和并行都可以处理“多任务”,二者的主要区别在于是否是“同时进行”多个的任务。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。
那么为什么要进行“并发、并行、多任务、多线程、异步”等等相关的一些操作,就是为了充分利用CPU的巨大潜能,不浪费CPU的资源,因为很多任务是需要时间的,比如文件的读写等等,如果让CPU处于一个闲置状态,不充分利用它,程序的效率就很低。