问题:什么是并发?什么是并行?
-
并发:在操作系统中,在一段时间内有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。
也就是说在 单CPU的计算机中,我们看起来“同时做的多件事情”,其实只是通过CPU的时间片技术并发完成的。比如用户感觉在“同时“听歌和打游戏,其实只是并发执行,非真的同时执行。并发是会抢占资源的 -
并行:并行(Parallel),当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
有一个很重要的点,那就是系统要有多个CPU才会出现并行。在有多个CPU的情况下,才会出现真正意义上的『同时进行』。
问题:并发与并行的区别?
并发:指的是多件事情,在同一个时间段内同时发生
并行:指的是多件事情,在同一时间点上同时发生
并发的多个任务之间是互相抢占资源的。
并行的多个任务之间是不互相抢占资源的。
只有在多CPU的情况中,才会发生并行。否则,看似同时发生的事情,其实都是并发执行的。