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

为什么要引入线程?

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

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

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

线程的实现方式

用户级线程

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

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

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

内核级线程

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

优缺点与前者相反。

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

多线程模型

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

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

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

TCB (线程控制块)

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

线程表:存放多个TCB的表

相关推荐
zl_dfq1 小时前
Linux 之 【多线程】(死锁、同步与竞态条件、条件变量、pthread_cond_xxx、POSIX信号量、sem_xxx)
linux
学Linux的语莫1 小时前
k8s常用命令
linux·容器·kubernetes
openKylin1 小时前
《2025年度OpenAtom openKylin社区全景案例集》正式发布
linux
CS_Zero1 小时前
Ubuntu安装Claude Code
linux·ubuntu·ai编程·claude
A星空1232 小时前
三、Kconfig介绍以及制作menuconfig界面
linux·运维·服务器
zylyehuo2 小时前
Windows & Linux 双系统资料整理
linux·夯实基础
口袋物联3 小时前
模板方法模式在 C 语言中的应用(含 Linux 内核实例)
linux·c语言·模板方法模式
一个人旅程~5 小时前
Linux Fcitx5输入法这么难念的由来?
linux·经验分享·电脑·ai写作
开开心心就好5 小时前
一键加密隐藏视频,专属格式播放工具
java·linux·开发语言·网络·人工智能·macos
小心草里有鬼5 小时前
VMware虚拟机扩容
linux·后端·centos·vim