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

为什么要引入线程?

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

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

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

线程的实现方式

用户级线程

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

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

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

内核级线程

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

优缺点与前者相反。

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

多线程模型

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

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

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

TCB (线程控制块)

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

线程表:存放多个TCB的表

相关推荐
4t4run24 分钟前
25、Linux 特殊权限
linux·运维
氵文大师1 小时前
A机通过 python -m http.server 下载B机的文件
linux·开发语言·python·http
HUT_Tyne2651 小时前
Linux 快速入门
linux·运维·服务器
leoufung2 小时前
逆波兰表达式 LeetCode 题解及相关思路笔记
linux·笔记·leetcode
鸠摩智首席音效师2 小时前
如何在 Linux 中使用 dd 命令 ?
linux·运维·服务器
一夜空中最亮的星一2 小时前
【Linux】ubuntu24.04 安装docker
linux·docker·eureka
赖small强2 小时前
【Linux 网络基础】libwebsockets 技术文档
linux·网络·https·tls·lib·websockets
q***51893 小时前
ubuntu 安装 Redis
linux·redis·ubuntu
q***47184 小时前
使用Canal将MySQL数据同步到ES(Linux)
linux·mysql·elasticsearch
Y淑滢潇潇4 小时前
RHCE 防火墙实验
linux·运维·rhce