很多人会混淆「并发」和「并行」,我想了一下,原因可能是这两个名词在中文上的相似性。
其实这两个名词在英文上是截然不同的单词。
并发:concurrency
并行:parallelism
并发指的是,有任务A和任务B,在一段时间内通过任务间的切换完成了这两个任务,这种情况叫「并发」。
并行指的是,假设CPU中存在两个核心,那么我们就可以同时完成任务A
和任务B
,同时完成多个任务,这种情况叫「并行」。
其实哈,这两者拿来对比是不妥的。
因为,并发指的是场景/需求,比方说某个业务有「高并发」的场景,但「并行」指的是「能力」,表明我们目前的功能是可以实现这件事的。