操作系统中的线程简要指南

2021年3月31日12:17:31 发表评论 751 次浏览

什么是线程?

线程是进程内执行的路径。一个进程可以包含多个线程。

为什么要多线程

线程也称为轻量级进程。这个想法是通过将一个进程划分为多个线程来实现并行性。例如, 在浏览器中, 多个选项卡可以是不同的线程。 MS Word使用多个线程:一个线程格式化文本, 另一个线程处理输入, 等等。多线程的更多优点将在下面讨论。

进程还是线程?

主要区别在于, 同一进程中的线程在共享内存空间中运行, 而进程在单独的内存空间中运行。

线程不像进程一样彼此独立, 结果线程与其他线程共享它们的代码部分, 数据部分和OS资源(例如打开的文件和信号)。但是, 与进程一样, 线程也有其自己的程序计数器(PC), 寄存器集和堆栈空间。

线程胜于进程的优势

1.响应能力:如果将进程划分为多个线程, 如果一个线程完成其执行, 则可以立即返回其输出。

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

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

4.资源共享:诸如代码, 数据和文件之类的资源可以在进程中的所有线程之间共享。

注意:堆栈和寄存器不能在线程之间共享。每个线程都有自己的堆栈和寄存器。

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

6.增强的系统吞吐量:如果将一个进程划分为多个线程, 并且每个线程功能都被视为一个作业, 则每单位时间完成的作业数将增加, 从而增加了系统的吞吐量。

线程类型

有两种类型的线程。

用户级别线程

内核级线程

参考:用户线程与内核线程

更多细节参考:C语言中的多线程

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

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: