栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【操作系统】——线程(5)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【操作系统】——线程(5)

文章目录

Tips一、线程的引入

1、引入线程后带来的变化2、线程的相关属性 二、线程的实现方式

1、用户级线程2、内核级线程3、多线程模型

(1)一对一模型(2)多对一模型(3)多对多模型


Tips

【操作系统】——进程的控制及通信(4)
【操作系统】——处理机的调度(6)

一、线程的引入

在没引进进程概念的时候,程序只能顺序执行,我们不能一边登qq,一边听音乐,而进程引入之后使得每个应用程序(系列程序)间可以并发执行,所以进程是使得多个程序可并发执行的,也就实现了多应用同时运行。

现在单纯地在qq当中,我们可以做的事情也很多,而如果只有进程的话,还不足以实现,因为进程只实现了应用程序间的并发,而应用程序内部程序模块的并发没有实现,而本小节要介绍的线程就是为了解决这个问题的。

线程实现了应用程序内部模块的并发执行!

1、引入线程后带来的变化

2、线程的相关属性

二、线程的实现方式

Q: 在早期只支持进程的系统中,如何实现线程呢?
A: 因为早期的系统只支持进程,而我们又要实现线程,所以自然而然的,我们就会想到既然系统只支持进程,那我们是否可以做出一种“线程形式”的进程呢??
其实是可以的。

1、用户级线程

其实这是一种在操作系统不支持的情况下,用户自己通过灵活变通实现的线程。


while循环是最弱智的线程库,线程库完成对线程的管理工作(如调度)


用户级线程,顾名思义是早期人们为实现线程而用代码实现的线程,即“线程形式”的进程,上述while循环就表示一个线程库,线程库完成了对线程的管理,包括线程切换等,也正因为线程库已经完成了对线程的管理,不需要请求操作系统,所以用户级线程是对操作系统不可见的,但是对用户可见,毕竟是用户自己代码实现的。

2、内核级线程

此时的操作系统已经可以支持线程了,即线程对操作系统可见

3、多线程模型 (1)一对一模型

(2)多对一模型

(3)多对多模型


在用户态下由线程库统一对用户级线程的请求向内核反映,减少状态转换的开销,内核级线程具有多个,防止单一内核级线程阻塞,在多对多模型中,只有所有内核级线程阻塞才会阻塞。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711237.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号