多线程透析–进程和线程底层分析
1、什么是进程?
程序启动后分配到内存,资源分配的基本单位,比如qq.exe。
2、什么是线程?
程序执行的基本单位。
怎么了解以上两个含义的解释呢?我们从CPU底层来理解下:
一个程序被启动后,会进入到内中变成:指令+数据。
就是说一个进程执行后,会被分配到内存中,变成一个或者多个指令和数据,而这样的指令+数据就是一个个线程。
3.程序如何开始运行的?
记住操作系统执行程序都是由CPU来操作的,而CPU只会执行处理线程。
那先了解下的CPU中几个核心的部件:
Registers:寄存器,用来存储线程中数据。
PC:程序计数器,用来记录程序执行的位置。
ALU:数据逻辑单元,用来专门做计算的。
cache:缓存,用户线程切换时,存储记录上个线程执行现场。
举个例子,现在有个程序需要做个计算 a = 1+2 的计算工作,那CPU是怎么工作的呢?
程序执行时,a=1+2 会被分配到内存中,a被分配一个内存空间,2和3就是数据。
同时执行的时候PC记录线程执行的位置。
CPU通过IO一系列设备获取到内存中的,把2和3放到寄存器Register中。
由ALU进行计算工作,计算出来的值3,运行出的结果返回内存,放入内存a中。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_31142237/article/details/115877071