当前位置: 首页 > article >正文

《操作系统 - 清华大学》 8 -8:进程管理:为什么使用线程

深入理解线程管理:从概念到应用

在操作系统的进程管理领域中,线程管理占据着重要地位,它是进程管理的关键拓展部分。下面将围绕线程的相关核心知识展开讲解。

线程概念的起源

操作系统自60年代引入进程概念后,进程便一直作为独立运行的基本单位接受系统调度。但到了80年代,计算机科学家提出了比进程更小的独立运行基本单位——线程。这一概念的诞生,为操作系统的运行模式带来了新的变革 。

总结:线程是在进程概念之后,于80年代被提出的更小的独立运行基本单位。

引入线程的原因——以MP3播放软件为例

设计MP3播放软件时,其核心功能包含读取音频数据、解压数据以及播放数据。若采用单进程方式实现,即将这三个功能置于一个循环中顺序执行,会存在性能问题。由于硬盘读取速度远低于内存和CPU,读文件操作可能会阻塞整个进程,导致声音播放不连贯,且IO与CPU无法并发执行 。

总结:单进程实现MP3播放软件功能时,因硬盘读取速度瓶颈,导致播放不连贯,IO与CPU无法并发执行。
在这里插入图片描述

多进程方式的尝试及问题

为解决单进程的问题,可以采用多进程方式,将读取、解压、播放分别设置为不同进程。这样在读取进程等待数据时,可将CPU资源分配给其他进程,实现类似流水线的高效处理。然而,多进程方式带来了新的难题,如进程间通讯复杂,创建和切换进程时需要保存与恢复进程状态,开销较大 。

总结:多进程虽能提升MP3播放效率,但进程间通讯和进程创建切换的开销较大。
在这里插入图片描述

线程的定义及优势

基于上述问题,需要一种新的实体,它既能并发执行,又能共享相同的地址空间和资源,这就是线程。与进程不同,线程间共享地址空间,使得数据传递更为便捷,降低了开销 。

总结:线程是一种可并发执行且能共享地址空间和资源的实体,相比进程,数据传递更简单,开销更小。


http://www.kler.cn/a/560174.html

相关文章:

  • 【Python爬虫(63)】从0到1:打造图片与视频爬虫攻略
  • 【java】implements
  • 原子操作、写回策略、缓存一致性问题、内存序详解
  • Vue面试2
  • 三、《重学设计模式》-单例模式
  • Python - 代码片段分享 - Excel 数据实时写入方法
  • uniapp打包生产证书上架IOS全流程
  • 【PDF预览】使用iframe实现pdf文件预览,加盖章
  • Redis7——基础篇(七)
  • JDK安装步骤
  • 机器人学习模拟框架 robosuite 支持强化学习和模仿学习 (1) 快速入门
  • 使用 LROPoller 处理 Azure 文档分析时的常见问题及解决方案
  • 猿创征文 【高级篇】Java 进阶之JVM实战
  • MATLAB中fft函数用法
  • 数据结构与算法-图论-最短路-单源最短路的建图方式
  • 从vue底层原理上解释ref和reactive的区别
  • 【NLP 24、实践 ⑤ 计算Bert模型中的参数数量】
  • 2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序
  • 网络安全产品
  • 数据安全_笔记系列02:国密算法(商用密码算法)详解