一、线程的实现方式----用户级线程

1.线程分为用户级线程和内核级线程

2.用户级线程由应用程序通过线程库实现,所有的线程管理工作都由应用程序负责(包括线程切换)

3.用户级线程中,线程切换可以在用户态下即可完成,无需操作系统干预。

4.在用户看来,是有多个线程,但是在操作系统的内核来看,并不意识到线程的存在。“用户级线程”就是“从用户视角所能看到的线程”。

5.优缺点:

优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程管理的系统开销小,效率高。

缺点:当一个用户级线程被阻塞后,整个线程都会被阻塞,并发度不高。多个线程必须在多核处理机上并行运行。

6.在用户级线程中,CPU调度的基本单位依旧是进程,并非线程

二、线程的实现方式—内核级线程

1.内核级线程:又称“内核支撑的线程”,是由操作系统支撑的线程。大多数的现代操作系统都实现了内核级线程,如Windows、Linux。

2.内核级线程的管理工作是由操作系统内核完成。

3.线程调度和切换等工作都是由内核负责,因此内核级线程的切换必然需要在核心态下才能完成。

4.操作系统会为每个内核级线程建立相应的TCB(进程控制块),通过TCB对线程进行管理”。“内核级线程”就是从操作系统内核视角看到的线程。

5.优缺点:

优点:当一个线程被阻塞后,别的线程还可以继续执行,并发能力强。多线程可在多核处理机上并行执行。

缺点:一个用户进程会占用多个内核程序,线程切换由操作系统内核完成,需要从用户态变为核心态,因此线程管理的成本高,开销大。

三、多线程模型—一对一模型

四、多线程模型—多对一模型

注意:在此种模型下,操作系统只“看得见”内核级线程,因为只有内核级线程才是处理机分配的单元。

五、多线程模型—多对多模型

六、总结

六、线程的实现方式---多线程模型相关推荐

  1. 线程的概念和多线程模型

    文章目录 5.线程概念和多线程模型 5.1.为什么要引入线程 5.2.什么是线程 5.3.线程引入后带来的变化 5.4.线程的属性 5.5.线程的实现方式 5.5.1.用户级线程 5.5.2.内核级线 ...

  2. 2.1.5 线程概念和多线程模型

    目录 思维导图 啥是线程,为什么要引入线程? 引入线程机制后,有啥变化? 线程的属性 线程的实现方式 用户级线程 内核级线程 组合方式 多线程模型 多对一模型 一对一模型 多对多模型 思维导图 啥是线 ...

  3. 【学习笔记】第二章——线程与多线程模型

    文章目录 一. 线程 为什么要引入线程: 引入进程后的变化 线程的属性 线程的实现 二. 多线程模型 1. 多对一模型 2. 一对一模型 3. 多对多模型 三. 总结 一. 线程 为什么要引入线程: ...

  4. 操作系统(十二)线程的实现方式、多线程模型

    2.1.6 线程的实现方式.多线程模型 目录 2.1.6 线程的实现方式.多线程模型 2.1.6.1 线程的实现方式 2.1.6.2 多线程模型 2.1.6.1 线程的实现方式   线程已在许多系统中 ...

  5. 线程实现的方式、多线程模型

    文章目录 前言 一.用户级线程 二.内核级线程 三.组合实现 四.多线程模型 1.多对一模型 2.一对一模型 3.多对多模型 前言 参考文章:https://blog.csdn.net/qq_4060 ...

  6. 2.1.5 操作系统之线程概念与多线程模型

    文章目录 0.思维导图 1.为什么要引入线程? 2.什么是线程? 3.引入线程带来的变化及进程与线程的比较 4.线程的属性 5.线程的实现方式 (1)用户级线程 (2)内核级线程 (3)特殊的组合方式 ...

  7. 王道操作系统考研笔记——2.1.5 线程概念与多线程模型

    文章目录 2.1.5 线程概念与多线程模型 2.1.5.1 线程的来源 2.1.5.2 线程机制带来的变化 2.1.5.3 线程的属性 2.1.5.4 线程的实现方式 2.1.5.5 多线程模型 2. ...

  8. 操作系统学习笔记-2.1.5线程概念和多线程模型

    操作系统学习笔记-2019 王道考研 操作系统-2.1.5线程概念和多线程模型 文章目录 5线程概念和多线程模型 5.1知识概览 5.2 什么是线程?为什么要引入线程? 5.3引入线程及之后,有什么变 ...

  9. (王道408考研操作系统)第二章进程管理-第一节5:线程概念和多线程模型

    文章目录 一:引导 二:区别"进程"."线程"和"轻量级进程" (1)进程和线程的关系 (2)Linux中没有真正意义上的线程 (3)轻量级 ...

最新文章

  1. 第一学期网络技术知识总汇
  2. 写 5 个你知道的 HTML5 标签,说明他们的意义
  3. Spring bean依赖注入、bean的装配及相关注解
  4. Android Native crash 处理案例分享
  5. PHP网站开启gzip压缩,php中开启gzip压缩的2种方法代码
  6. ubuntu16 黑主题_给Ubuntu 8.10安装超炫酷黑色新主题
  7. java编程int和byte的用法_Java中的Byte Array和Int转换
  8. QT每日一练day20:事件处理机制
  9. MongoDB的安装、配置服务(转)
  10. 初学者PLC程序及有效学习方法
  11. 使用spack mirror简化离线环境的包安装
  12. open SUSE 查看本机ip地址
  13. jQuery灯箱插件lightBox使用方法
  14. 高一物理加速度的理解
  15. 1483套求职个人简历PPT模板免费下载网址
  16. 计算机桌面怎么换服,台式电脑怎么换桌面壁纸
  17. 岗位po是什么意思_通信公司中PO和PM分别是什么意思?
  18. 查询服务器主机CPU是几核?附应用场景展示(已解决)
  19. 笔记本电脑wifi图标变成了小地球的解决办法(留日后查看)
  20. 当经历所有大厂的实习面试过后

热门文章

  1. 指针,引用之间的关系
  2. JQuery $post函数
  3. 第二十六课.深度强化学习(一)
  4. oracle开发常用,oracle开发常用关键字
  5. 绘制三维散点图_质量工具--之散点图
  6. matlab svm工具箱_机器学习笔记--SVM(MATLAB 实现代码)
  7. The Innovation | ESCI Indexing
  8. MPB:亚热带生态所谭支良、焦金真等-​反刍动物瘤胃样品采集与保存
  9. MPB:山大倪金凤组-黄翅大白蚁肠道放线菌的分离与培养
  10. 聚类热图怎么按自己的意愿调整分支的顺序?