进程管理(三) 线程

mac2026-05-27  1

why what how

为什么要有线程?

- 单进程性能问题 - 多进程间 资源共享,通信,进程创建,切换,结束带来的开销问题

线程的定义

进程中的一条执行流程,成为cpu调度的最小单元 同一个进程内的线程共享同一片地址空间,代码,数据,内存,文件,网络等资源
TCB 线程控制块
代替进程的执行过程

优点:

并发执行 共享数据

缺点:

一个线程崩溃,同一个进程内其他线程也崩溃,共享资源被破坏

网页:早期是线程实现,现在防止某个网页上的恶意代码导致浏览器崩溃,因此现在的浏览器采用进程方式打开网页,网页间互不影响,注重安全性

线程和进程的比较

线程的创建和结束更快 线程的切换开销更小(不用切换页表) 线程间可以不通过内核通信

实现方式

用户线程

os看不到的线程,具体由用户级的线程库函数进行管理 线程的状态变换,tcb 都由线程库管理,不涉及用户态,内核态切换,可以自定义调度算法 用户线程不主动交出cpu执行权,进程中其他线程无法获得cpu 线程发出阻塞的系统调用,整个进程会被阻塞

内核线程

windows 操作系统可以看得见的线程 tcb 位于 内核中, 一个pcb 对应 tcb list,tcb 管理调度 一个线程的切换带来用户态到内核态的转换,带来额外开销

轻量级进程

Linux,solaris linux 一个进程对应多个轻量级进程lwp,每个量级的进程对应一个内核线程
最新回复(0)