《操作系统 - 清华大学》 8 -9:进程管理:什么是线程
深度剖析线程与进程:概念、差异、应用及性能对比
-
线程的定义:线程是进程当中的一条执行流程。
-
引入线程概念后进程含义的变化
- 从资源管理角度看,进程主要用于管理打开文件、访问网络等资源。
- 从运行角度看,线程是进程资源平台上的执行流程,进程由资源管理和线程两部分组成。
- 总结:从不同视角阐述引入线程概念后进程含义的新变化,清晰呈现进程功能的划分。
-
线程的特性
- 一个进程可包含多个线程,这些线程共享进程提供的资源平台,能直接访问进程的代码、数据、内存和文件等资源。
- 线程有自己的线程控制块(TCB),负责管理执行流程相关信息,如程序计数器(PC)、堆栈(SP)和寄存器信息,但内存空间(堆、代码段、数据段)由所有线程共享。
-
线程的优缺点
- 优点:线程之间可以并发执行,共享地址空间和文件等资源,线程间的数据传输更便捷。
- 缺点:安全性和可靠性较差,一个线程出错可能破坏共享资源,导致其他线程和整个进程崩溃。
-
线程与进程的应用场景
- 在高性能计算领域,如天气预报、复杂水利计算,强调性能且代码执行相对统一,适合采用线程方式执行。
- 在互联网服务中,早期浏览器用线程机制打开网页速度快,但存在安全隐患;现在很多浏览器(如Chrome)采用进程机制,一个进程打开一个网页,更注重安全性。
- 总结:结合具体领域案例,说明线程和进程在不同场景下的适用性差异。
-
不同操作系统对线程和进程的支持
- 早期的MS DOS是单进程单线程模式,早期Unix是多进程单线程模式。
- 现在的Windows NT、Linux等操作系统支持多进程以及进程内多线程模式,现代操作系统的支持更具灵活性。
-
线程和进程的资源需求
- 单线程在进程空间只有一个控制流,多线程则有多个不同控制流。
- 线程可共享代码段、数据段、文件和网络资源等,线程资源分为独占资源(与控制执行相关)和共享资源,独占资源需单独保护。
-
线程与进程的比较
- 进程是资源分配单位,线程是CPU调度单位;进程是完整资源平台,线程独占寄存器、堆栈等必要资源且有执行状态(就绪、阻塞、执行)及状态转换关系。
- 线程创建、终止时间比进程短,切换效率高,线程间数据传递无需通过内核,在并发执行时时间和空间开销更小。
- 总结:详细对比线程和进程在功能、资源、执行状态以及执行效率等方面的差异,突出线程的性能优势。