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

为什么要引入线程?

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

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

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

线程的实现方式

用户级线程

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

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

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

内核级线程

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

优缺点与前者相反。

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

多线程模型

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

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

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

TCB (线程控制块)

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

线程表:存放多个TCB的表

相关推荐
无限进步_36 分钟前
【Linux】gcc/g++ 编译:从源码到可执行文件的四个阶段
linux·运维·服务器
原来是猿9 小时前
网络计算器:理解序列化与反序列化(中)
linux·运维·服务器·网络·tcp/ip
AOwhisky10 小时前
虚拟化技术学习笔记
linux·运维·笔记·学习·虚拟化技术
rabbit_pro11 小时前
Docker compose部署Ollama使用模型
linux·运维·docker
Irissgwe13 小时前
六、Ext系列文件系统(2.核心原理与应用)
linux·分区··inode·软硬连接·路径缓存·ext系列文件
tkevinjd13 小时前
wsl2安装
linux·wsl·虚拟机·wsl2
故事还在继续吗13 小时前
Linux 内核模块开发实战
linux·linux内核
南境十里·墨染春水14 小时前
linux学习进展 守护进程
linux·服务器·学习
REDcker15 小时前
Android HWASan 详解:硬件标记原理、Clang 启用与排障实践
android·linux·debug·编译·clang·asan·hwasan
数智工坊15 小时前
VMware 17 Pro 中 Ubuntu 虚拟机共享 Windows 文件夹(完美踩坑版)
linux·人工智能·windows·ubuntu