很多年前,上操作系统课的时候,老师告诉我们“并行是指同一时刻同时做多件事情,而并发是指同一时间间隔内做多件事情”。这里的差别初看确实简单明了,不过较真的我表示不同意。老师们说的话,貌似并不严谨。时刻是指时间轴上的一个点,一个瞬间,这是个不可再分的量。如果在时间这个维度上没有增量,何来“做事”一说!也就是说,老师们口中的“时刻”与时间间隔(时间段)其实是等价的。那老师们说的那个“区别”有什么区别吗?多年过去,今天偶然又讨论起这个话题。。。 正是因为当初老师给同学们灌输了这种模棱两可的概念,所以每次提起这个话题的时候,总是免不了要有一番口水仗。关于这个问题,我在不同的场合与不同的小伙伴争论过无数次了,厌烦了。所以,今天我想把我自己理解的概念写下来,终结关于这个话题的争论。 首先,我们来看看前辈的看法: Concurrency is when two tasks can start, run, and complete in overlapping time periods. Parallelism is when tasks literally run at the same time, eg. on a multi-core processor. Concurrency is the composition of independently executing processes,