操作系统学习记录之三:多线程技术

本文探讨了单线程与多线程结构进程的特点及问题,并介绍了多线程环境下进程与线程的概念、状态与调度方式,以及多线程程序设计的优势和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单线程结构进程(一个进程里一个执行序列):

 单线程结构进程的问题:

单线程结构进程在并发程序设计上存在的问题:

• 进程切换开销大
• 进程通信开销大
• 限制了进程并发的粒度
• 降低了并行计算的效率

解决问题的思路

• 把进程的两项功能, 即“独立分配资源” 与“被调度分派执行” 分离开来;
• 进程作为系统资源分配和保护的独立单位, 不需要频繁地切换;
• 线程作为系统调度和分派的基本单位, 能轻装运行, 会被频繁地调度和切换;
• 线程的出现会减少进程并发执行所付出的时空开销, 使得并发粒度更细、 并发性更好;

多线程结构进程(一个进程里面有多个执行序列)

多线程环境下进程的概念:

 在多线程环境中, 进程是操作系统中进行保护和资源分配的独立单位。 具有:
•用来容纳进程映像的虚拟地址空间;
•对进程、 文件和设备的存取保护机制;

 线程是进程的一条执行路径, 是调度的基本单位, 同一个进程中的所有线程共享进程获得的主存空间和资源。 它具有:
• 线程执行状态
• 受保护的线程上下文, 当线程不运行时,用于存储现场信息;
• 独立的程序指令计数器;
• 执行堆栈;
• 容纳局部变量的静态存储器;
 

多线程环境下线程的状态与调度

• 线程状态有运行、 就绪和睡眠, 无挂起(因为挂起与资源分配有关,而线程没有资源分配一说);
• 与线程状态变化有关的线程操作有:
• 孵化、 封锁、 活化、 剥夺、 指派、 结束;
• OS感知线程环境下:
  • 处理器调度对象是线程;
  • 进程没有三状态(或者说只有挂起状态);
• OS不感知线程环境下:
  • 处理器调度对象仍是进程;
  • 用户空间中的用户调度程序调度线程;
 

并发多线程程序设计的优点:

• 快速线程切换;
• 减少(系统) 管理开销;
•(线程) 通信易于实现;
• 并行程度提高;
• 节省内存空间;

多线程技术的应用:

• 前台和后台工作;
• C/S应用模式;
• 加快执行速度;
• 设计用户接口;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值