📜  操作系统中的线程

📅  最后修改于: 2022-05-13 01:56:11.541000             🧑  作者: Mango

操作系统中的线程

什么是线程?
线程是进程内的执行路径。一个进程可以包含多个线程。
为什么要多线程?
线程也称为轻量级进程。这个想法是通过将一个进程分成多个线程来实现并行性。例如,在浏览器中,多个选项卡可以是不同的线程。 MS Word 使用多个线程:一个线程用于格式化文本,另一个线程用于处理输入等。多线程的更多优点将在下面讨论
进程与线程?
主要区别在于同一进程内的线程运行在共享内存空间中,而进程运行在不同的内存空间中。
线程不像进程那样彼此独立,因此线程与其他线程共享它们的代码部分、数据部分和操作系统资源(如打开的文件和信号)。但是,与进程一样,线程也有自己的程序计数器 (PC)、寄存器集和堆栈空间。
线程优于进程的优势
1. 响应性:如果进程被分成多个线程,如果一个线程完成了它的执行,那么它的输出可以立即返回。

2. 更快的上下文切换:线程之间的上下文切换时间比进程上下文切换要短。进程上下文切换需要更多的 CPU 开销。

3.多处理器系统的有效利用:如果我们在单个进程中有多个线程,那么我们可以在多个处理器上调度多个线程。这将使流程执行更快。

4. 资源共享:代码、数据、文件等资源可以在进程内的所有线程之间共享。
注意:堆栈和寄存器不能在线程之间共享。每个线程都有自己的堆栈和寄存器。

5. 通信:多个线程之间的通信更容易,因为线程共享公共地址空间。在进程中,我们必须遵循一些特定的通信技术来进行两个进程之间的通信。



6、增强系统的吞吐量:如果一个进程被划分为多个线程,每个线程的函数被认为是一个作业,那么单位时间内完成的作业数量就会增加,从而提高系统的吞吐量。
线程类型
有两种类型的线程。
用户级线程
内核级线程
有关更多详细信息,请参阅用户线程与内核线程。

以下是往年关于线程的门问题:
https://www.geeksforgeeks.org/gate-gate-cs-2011-question-16/
https://www.geeksforgeeks.org/gate-gate-cs-2007-question-17/
https://www.geeksforgeeks.org/gate-gate-cs-2014-set-1-question-30/

参考:
C 中的多线程