操作系统中的线程

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

null

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语言中的多线程

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享