先来进入我们的大工厂~~~
进程就像是工厂里的一个个车间,而线程就是车间里的一条条流水线
而我们的工人张三就是处理任务的CPU
在很早很早以前,我们的工厂有车间A和车间B,工厂每次采集回来原材料,就会按照不同的车间进行分配
——进程是操作系统资源分配的基本单位
车间A有一条有流水线;车间B有两条流水线(流水线1和流水线2)
——每个进程可以有一个及以上的线程(至少有一个,建了一个车间总是要干点儿什么吧)
工厂规定,不同车间里存放的材料只能提供给本车间的流水线使用,也就是说张三不能把车间A里堆放的材料拿到车间B去使用,而且张三发现虽然都是在车间B里,但是流水线1和流水线2都有他们各自的原材料入口,作业区域,成品存放处等等
——同一个进程中的各个线程可以共享本进程的地址空间和资源,但是每个线程有自己独有的资源
但是我们只有张三一个工人,为了保障这2个车间的3条流水线都能正常运行,我们的张三需要以极快的速度频繁的在不同的车间以及流水线之间切换
——线程是CPU调度的最小单位(最小的执行单元)
张三同志表示在车间B的流水线1和流水线2之间切换,比从车间B跑到到车间A方便
——进程之间切换开销较大,线程之间切换开销较小
而且张三发现,在同样