你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。
并发的关键是你有处理多个任务的能力,不一定要同时。
并行的关键是你有同时处理多个任务的能力。
并发和并行的区别在于能否“同时”处理任务。
比如多线程处理任务:
多线程程序在一个核的cpu上运行,就是并发。每个被分配到时间片的线程才可以运行,其他线程等待时间片。

多线程程序在多个核的cpu上运行,就是并行。每个线程同时占用各自核cpu的时间片运行。

本文通过生动的例子解释了并发和并行的区别。并发是指系统能够处理多个任务,但不一定同时进行,例如暂停电话接听后继续吃饭。而并行则意味着可以同时处理多个任务,如边打电话边吃饭。在单核CPU上,多线程表现为并发,每个线程轮流获取时间片执行;而在多核CPU上,多线程可以实现并行,每个线程在各自核心上同时运行。
5791

被折叠的 条评论
为什么被折叠?



