what?什么是进程和线程?
这个问题,随便百度一下能看到很多详细的回答
简单来说
线程是CPU工作的最小单位,进程为线程调度提供系统资源。
How?进程和线程怎么工作?
计算机原理是个比较复杂的话题,但是不论多么复杂的计算机结构,都可以抽象简化一下,成为如下的模型
那么问题来了
从输入到输出,计算机干啥了,把大象塞入冰箱,拢共需要几步?
只要3步
读,算,写
为了完成这3步,我们需要控制模块,运算模块,存储模块
线程是对于CPU的概念
CPU控制器(控制模块),运算器(运算模块),寄存器(存储模块),
完成一次输入到输出的转化工作,必须要读,算,写,也就必须要以上3个模块工作,少了任何一个模块,cpu都不可能完成一次计算
这就是线程的工作原理,线程也就是CPU的最小工作单位,
电脑的CPU往往就标注的多少核心多少线程
比如我的电脑就是16核心32线程
那么进程咋工作呢?
进程是操作系统的概念
它在内存中创建堆栈,为线程提供资源,cpu取数据时,去内存中取,写数据时也往内存中写
why?为什么是线程和进程?
为了保证CPU的计算速度,寄存器就不可能设计的很大
cpu的寄存器,用来暂存指令、数据和位址,速度最快,CPU去内存中寻址取到数据,计算完,再放到指定地址
参考下冯·诺依曼结构计算机
运行一段程序,需要内存来为计算提供存储,内存的大小受寄存器寻址空间限制,
早期的计算机都以进程作为最小工作单位,计算机为每一个线程都分配内存空间,不同进程内存空间隔离,进程切换,资源消耗很大
以线程为最小工作单位,同一进程的线程切换,内存空间不变,开销小