1. 首页 > 科技快讯 >

为什么要在os中引入线程? os中引入线程的直接好处是

为什么要引入线程?——比进程更灵活高效的调度单位

线程是OS运行调度的最小单位,比进程要小。线程的引入可以说是为了克服进程的缺点。

为什么要在os中引入线程? os中引入线程的直接好处是为什么要在os中引入线程? os中引入线程的直接好处是


为什么要在os中引入线程? os中引入线程的直接好处是


进程的缺点是什么呢?我们首先来回顾一下OS使用进程时都需要为进程做些什么,以及这样的开销上的负担:

以上都需要花上好一些时间和资源,所以我们不要在系统中设置太多的进程,也不要在进程间频繁切来切去,以免给系统造成沉重负担。

我们可以看到进程面临这些限制,所以并发程度也就受到了限制。

但是我们想要获得更好的并发性和效率,怎么办?考虑一下进程的两个特点:

(1)它是调度和分派的基本单位;

(2)它拥有资源块。

既然要更加灵活高效地并发,我们可以尝试把这两个特性分开一下:我们依然让进程拥有资源块,然后让它拥有许多“小进程”去完成调度任务,在需要的适合进程再把资源分配给它们——这些只有作为调度单位的功能,而自己本身没有什么资源的“小进程”,就是线程了。

我们现在看看线程如何解决了上述缺陷:

在同一个进程里的线程拥有同一套地址空间,共享着进程拥有的资源,它们之间的同步和通信因此比较容易,它们之间的切换也变得很省开销。但是要注意不同进程里的两个线程切换时仍然需要是切换进程的。

现在,进程就把作为调度单位功能给了体量更小的线程,线程也就成了最小调度单位。那么进程自己还可以执行什么来自处理及的调度任务吗?是所有调度任务现在都给它手下的进程们干了,它自己只负责给线程们发发资源。

线程当然是可以并发执行的了——既然我们是为了获得更好的并发性。它可以并发,可以被调度,这和它的大哥进程很像,所以有时候我们也把线程叫做“轻进程”。

我们同时也因为线程获得了更好的灵活性——如果不引入线程,一个进程在出于某种原因被阻塞时,它依然会占有被OS分配的资源然而却不工作,也不能完成其他的功能而浪费了时间;如果引入线程,而让线程并行地分别去完成进程的若干个工作,即使某个线程被阻塞了,其他线程也可以继续干自己的,既不浪费占有的资源也不浪费时间。

Good job,现在我们的系统更加灵活高效了!

在多道程序环境下,程序的执行属于并发执行,此时它们将失去其封闭性。并具有间断性及不可再现性的特征。这就决定了通常的程序是不能并发执行的而程序的顺序执行使系统资源利用率低,为此引入线程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息