并发和并行都是指在同一时间段内执行多个任务的能力
- 并发:同一时间段内执行多个任务。这里的同时是逻辑上的 “ 同时 ” 进行,微观上是交替运行的,同一时刻,只能有一个任务在进行处理。例如,我们一边打开浏览器,一边听音乐,这就是并发的典型例子。可以将并发理解为 “ 多个任务轮流使用同一个处理器资源 ”。
- 并行:同一时间段内执行多个任务。这里的同时是在同一时间点上同时被处理。在并行系统中,系统或进程有多个执行单元,因此多个线程或进程可以同时执行不同的任务。可以将并行理解是 “ 多个任务同时使用多个处理器资源 ”。
- 互斥:某一个线程运行一个代码段(关键区),其他线程不能同时运行,即进程之间访问临界资源时相互排斥。
- 同步:进程之间存在先后关系,必须依照这个顺序关系进行执行,具有同步关系的一组并发进程之间发送的消息称为消息或事件,抽象理解为你去食堂打饭,食堂阿姨还没做好,你选择在那等待。
- 异步:进程之间彼此独立,在等待某个时间的过程中可以继续做其他事情,抽象理解:你去食堂打饭,食堂阿姨还没做好,你选择先去干别的事情待会儿再来。