『面试问答』:并发和并行的区别是什么?

面试官 : 请说一下并发和并行的区别是什么?

  • 并发是指两个或多个任务在同一时间间隔内发生。当有多个线程在操作时,如果系统只有一个CPU,则它不可能真正同时执行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起等待状态。这些线程微观上都是被顺序执行的,只是由于每个线程分配的时间段特别短,线程执行的切换速度非常快,在宏观上看起来他们像是被同时执行的。

  • 并行是指两个或者多个任务在同一时间点发生。当系统有一个以上CPU时,则线程的操作有可能会并行。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行。并行是真正的同时执行。

看两个例子:

排队在售货机买可乐:

孩子们领礼物:

#24届软开秋招面试经验大赏##牛客在线求职答疑中心##并发和并行#
软件开发面试问答 文章被收录于专栏

分享软件开发岗位面试题及答案

全部评论

相关推荐

1 4 评论
分享
牛客网
牛客企业服务