亲爱的,你看到我面试评价中提到“对并发和并行的概念不清楚”了吗?让我给你解释一下这两个概念,这样你也能明白它们之间的区别。

并发和并行都是关于计算机如何处理多个任务的方式,但它们有不同的含义。




首先,并发(Concurrent)和并行(Parallel)都是操作系统中的概念,用来描述CPU如何执行多个任务。它们很容易混淆,但其实有很大的不同。


我们平时使用Windows操作系统,可以同时做很多事情,比如一边看电影一边聊QQ,或者一边听歌一边打游戏。但是,这些所谓的“同时”,在操作系统底层并不是真正的同时。
对于单CPU的计算机来说,同一时间只能做一件事。为了看起来像是“同时干多件事”,Windows通过时间片技术,把CPU的时间划分成小段时间片,然后轮流分配给各个应用使用。这样,用户感觉是在同时进行听歌和打游戏,实际上,CPU是在游戏进程和音乐播放器进程之间来回切换执行的。
操作系统的时间片分配是有规则的:如果某个任务在时间片结束前没有完成,就会暂停,等待下一轮循环再继续。CPU会分配给另一个任务使用。


所以,并发(Concurrent)就是指在一个时间段内,有几个程序都在运行中,但它们是在同一个处理机上运行的。比如听音乐和打游戏在同一时间段内都是在同一台电脑上完成的,这就是并发。


而并行(Parallel)是指当系统有多个CPU时,一个CPU执行一个进程,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以真正同时进行。这种情况只有在多CPU的系统中才会出现。


举个例子,我们两个人一起吃午饭。你吃米饭、蔬菜、牛肉,这三件事其实是并发执行的,因为你是在它们之间来回切换的。而如果我们两个人一起吃午饭,我吃我的,你吃你的,我们可以在同一时间点上一起吃牛肉或者各自吃不同的东西,这就是并行。

所以,并发是指在一段时间内宏观上多个程序同时运行,而并行是指同一个时刻,多个任务确实真的在同时运行。




并发的多个任务之间是互相抢占资源的,而并行的多个任务之间是不互相抢占资源的。只有在多CPU的情况下,才会发生并行,否则,看似同时发生的事情其实都是并发执行的。

就像这张图里说的,只有一个咖啡机的时候,一台咖啡机是在并发被使用的。而有多个咖啡机的时候,多个咖啡机之间才是并行被使用的。




希望这个解释能让你明白并发和并行的区别。如果你觉得我的解释不错,欢迎点赞和转发哦!
以上就是如何给女朋友解释什么是并发和并行的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号