轻量级进程(LWP)的技术本质与 Linux 实现

1. 从进程到线程:操作系统调度模型的演进

1.1 传统进程的缺陷

早期操作系统(如 UNIX)中,进程是资源分配和调度的双重单位:

  • 资源分配:每个进程拥有独立的地址空间、文件描述符、信号处理句柄等;
  • 调度单位:内核根据进程状态(运行、就绪、阻塞)分配 CPU 时间。
    但这种 “强隔离” 带来两个问题:
  • 创建 / 切换开销大:fork () 创建进程需复制整个地址空间,上下文切换需保存 / 恢复大量寄存器数据;
  • 并发能力有限:多核时代,进程级并发无法充分利用 CPU 资源(比如多个进程间共享数据需复杂的 IPC 机制)。
1.2 线程的诞生:分离 “资源分配” 与 “调度”

为解决上述问题,线程(Thread)被引入,作为调度的最小单位,共享进程的资源:

  • 用户空间线程(UT):由编程语言或运行时库(如 pthread)管理,内核不可见,调度成本极低,但存在 “阻塞一个线程导致整个进程挂起” 的风险(如早期 Java 线程模型);
  • 内核空间线程(KT):由内核直接调度,每个线程对应一个独立的内核调度实体,解决了用户线程的缺陷,但创建 / 切换仍需内核参与(开销高于用户线程)。
1.3 轻量级进程(LWP):内核级线程的实现

在 Linux 中,

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值