线程:
存在的意义(一种浅白的描述):进程包含数据,程序,体型庞大,在阻塞就绪状态排队(在内存)太占位置,移动慢(调度开销大),不如登记后(登记于内存,这就是线程,只携带少量必要信息,调度时在获得资源,召唤本体),一边等着(置于外存);且进程阻塞挂起时,部分工作可以执行却无法执行,需要细分;还可以利用充分多核;
进程拥有独立资源,其下线程是处理机调度的单元
一个进程至少包含一个线程
线程控制块(TCB),进程内线程共享的资源置于PCB,独有资源置于TCB
包含:线程标识信息,处理机状态信息(现场信息),线程调度信息
状态与进程类似:如运行,就绪,阻塞,终止
线程创建
参见后续博客
线程优势
易于调度,高并发性,开销少,发挥了多处理器功能
进程与线程的区别
1.调度:进程,资源拥有的基本单位,线程,调度指派的基本单位;
线程切换不会引起进程切换(同一进程内);
2.资源:线程不拥有系统资源,可通过进程获得进程的系统资源
3.并发性:
4.系统开销:
对线程的管理:
1. 内核态线程:
操作系统管理线程:
优点:编程简单,调度容易
缺点:线程调度经过内核,开销大,占用内核资源多等;
2. 用户态线程:
进程管理线程,即用户管理;
优点:灵活,不依赖系统,不经内核切换快
缺点:程序书写困难,有可能一个线程受阻(无法执行交出CPU命令),整个进程失去控制权
3. 混合态线程:
现代操作系统使用,内核态线程执行阻塞操作,用户态线程执行非阻塞操作,同时进行;即一个内核态线程负责其映射的多个用户态线程内核调度,一个阻塞,全组阻塞,调用另一个内核态线程映射的多个用户态线程;
实现混合方式的模型:
多对一:多用户线程对应一个内核线程,,一个阻塞,全组阻塞,每次只有一个线程访问核心
一对一:开销大,
多对多:克服上述模型的缺点;