并发:在同一时间间隔内,同时有多个进程或线程运行。
并行:在同一时刻,同时有多个进程或线程运行。
举个简单明了的例子:
如果一台主机只有一个CPU,那么在某一时刻内最多只能有一个线程在CPU中运行。这个时候,如果有多个线程需要运行,则将一个时间间隔分成小的时间段,在每个时间段内执行不同的线程,某一时刻内最多只有一个线程在CPU中运行,这种被称为并发。
而一台主机如果有两个CPU的时候,如果有多个线程需要执行,则分别在两个CPU上分时间段运行,同一时刻内可能会有两个线程分别在同一主机的两个CPU中运行,这两个在同一时刻运行中的线程的情况被称为并行。