多CPU ,多核和进程以及多线程之间的关系

  • 进程和线程的关系


每一个独立的应用程序都是一个进程,每一个进程又包含1-N个线程

多CPU ,多核和进程以及多线程之间的关系_第1张图片

  • CPU和进程的关系


CPU同一时刻只能运行一个进程,那么为什么我们的计算机可以同时打开多个应用程序(网页浏览器,

QQ聊天等)呢? 因为我们的计算机有操作系统调度器。

多CPU ,多核和进程以及多线程之间的关系_第2张图片

 

从上面的可以看出单CPU时两个进程是交替执行的,在一个cpu时间片上只能有一个进程执行;但是因为一个cpu时间片

的时间非常非常的短暂,是我么无法肉眼感知到的,因此在我们看来进程1和进程2是并发执行的。

如果是多CPU时,有些进程是可以并行执行的,即同一时刻运行多个进程

进程的执行不仅仅只是需要cpu就能完成的,还需要内存,显卡,磁盘等资源,这些合起来称为程序的上下文。

  • CPU和线程的关系


从上面的关系可以看出,一个cpu时间片上可以运行多个线程;

如果一个CPU只有一个核,那么此时在一个cpu时间片上的线程在同一时刻也是只能执行一个线程的

多CPU ,多核和进程以及多线程之间的关系_第3张图片

单cpu多核时,线程是可以并行的,也就是同时执行

 

你可能感兴趣的:(多线程)