【操作系统】线程、多线程

为什么要引入线程?

传统的进程只能串行的执行一系列程序,线程增加并发度。同一个进程分为多个线程。

线程是调度的基本单元,程序执行流的最小单位,基本的CPU执行单元。

进程是资源分配的基本单位。

线程的实现方式

用户级线程

代码中用线程库实现的线程,操作系统还是只看到进程。

优点:管理用户级线程开销小,不用用户态和内核态切换。

缺点:一个线程被阻塞,整个进程都被阻塞,并行差。

内核级线程

操作系统内核管理内核级线程,需要在核心态下完成,从操作系统内核视角可以看到线程。

优缺点与前者相反。

内核级线程才是处理机的分配单位。

多线程模型

用户级线程是"代码逻辑"的载体

内核级线程是"运行机会"的载体

线程的状态与转换与进程一样

TCB (线程控制块)

线程标织符TID,程序计数器PC,其他寄存器,堆栈指针,线程运行状态,优先级。

线程表:存放多个TCB的表

相关推荐
小糖学代码1 小时前
LLM系列:1.python入门:3.布尔型对象
linux·开发语言·python
shizhan_cloud1 小时前
Shell 函数的知识与实践
linux·运维
Deng8723473481 小时前
代码语法检查工具
linux·服务器·windows
霍夫曼4 小时前
UTC时间与本地时间转换问题
java·linux·服务器·前端·javascript
月熊4 小时前
在root无法通过登录界面进去时,通过原本的普通用户qiujian如何把它修改为自己指定的用户名
linux·运维·服务器
大江东去浪淘尽千古风流人物5 小时前
【DSP】向量化操作的误差来源分析及其经典解决方案
linux·运维·人工智能·算法·vr·dsp开发·mr
赖small强6 小时前
【Linux驱动开发】NOR Flash 技术原理与 Linux 系统应用全解析
linux·驱动开发·nor flash·芯片内执行
IT运维爱好者7 小时前
【Linux】LVM理论介绍、实战操作
linux·磁盘扩容·lvm
LEEE@FPGA7 小时前
ZYNQ MPSOC linux hello world
linux·运维·服务器
郝学胜-神的一滴7 小时前
Linux定时器编程:深入理解setitimer函数
linux·服务器·开发语言·c++·程序人生