【JAVA进化论】LV3-4:反射[转载]

两张图来理解并发并行

图1

如果只有一个CPU,通过CPU调度切换线程上下文,我们认为,在任意一个时刻,各个线程有且只能运行一个,这个叫并发。

相反的,如果有两个或者更多的CPU,那么就会是下面这样:

图2

两个CPU一起调度的时候,总会出现一些”同时被调度运行“的线程,比如上图的红色⭐️标记的部分,它们确实在同一时刻都被调度到并且开始运行了,我们称这种因多CPU调度而产生的线程运行时间重叠的现象叫并行。

并行必须要有多个CPU,能并行的一定能并发,如果你只有一个CPU,那么你只能是并发了,不可能并行。