概念理解:多CPU,多核,多进程,多线程
文章参考: https://www.cnblogs.com/csfeng/p/8670704.html 当面临这些概念问题的时候,有两个关键词无法绕开,那就是并行和并发。我的理解:并发是指宏观上并行,其实不是并行,例如,多进程其实是将所有进程按时间分为一个一个的时间片,每一个时刻只执行该运行的片,时间片过期后转而执行下一个进程的时间片。 首先,要先了解几个概念: 1、进程是程序的一次执行。 2、进程是资源分配的基本单位(调度单位)。 3、一个进程可以包括多个线程。 4、在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU。 5、操作系统调度器:拆分CPU为一段段时间的运行片,轮流分配给不同的程序。 6、操作系统内存管理模块:管理物理内存、虚拟内存相关的事务。 由于CPU同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能使用CPU直到运行结束,于是出现了操作系统调度器,而进程也成为了调度单位。 进程的运行不仅仅需要CPU,还需要很多其他资源,如内存啊,显卡啊,GPS啊,磁盘啊等等,统称为程序的执行环境,也就是程序上下文。 在这里就出现了并发的概念,调度器切换CPU给不同进程使用的速度非常快,于是在使用者看来程序是在同时运行,这就是并发,而实际上CPU在同一时刻只在运行一个进程。 CPU进程无法同时刻共享