单核cpu多核cpu如何执行多线程

花了很多时间来整理这方面的相关内容,参考博客:多CPU,多核,多进程,多线程

程序和进程

  • 程序: 为完成特定任务,用某种语言编写的一组指令集合,即一段静态的代码
  • 进程:程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,比如电脑上的各种运行中的软件

进程和线程

  • 进程可进一步细化为线程,是一个程序内部的一条执行路径,比如杀毒软件中的体检,杀毒,清理等都是一个进程中的多个线程
  • 一个进程同一时间并行多个线程,多线程是程序有多个线程在同时执行,就表示支持多线程
  • 线程是CPU调度和分配的基本单位(可以理解为CPU只能看到线程)
  • 进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位

并行与并发

  • 并行: 指在同一时刻,有多条指令(线程)在多个处理器(cpu上多个核)上同时执行,并行在多处理器系统中存在
  • 并发: 指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,并发可以在单处理器和多处理器系统中都存在

单核多线程

单核多线程指的是单核CPU轮流执行多个线程,通过给每个线程分配CPU时间片来实现,只是因为这个时间片非常短(几十毫秒),所以在用户角度上感觉是多个线程同时执行。

多核多线程

可以把多线程分配给不同的核心处理,其他的线程依旧等待,相当于多个线程并行的在执行

CPU的多核和应用程序的多线程的关系

多核就是系统同时可以运行多个线程,比如双核可以同时执行两个线程。单核儿只能一次执行一个线程

规律

  • 单CPU中进程只能是并发,多CPU计算机中进程可以并行也可以并发。
  • 单CPU单核中线程只能并发,单CPU多核中线程可以并行也可以并发。
  • 无论是并发还是并行,使用者来看,看到的是多进程,多线程。
发布了37 篇原创文章 · 获赞 11 · 访问量 3875

猜你喜欢

转载自blog.csdn.net/Alphr/article/details/105216914