`
zhangyu8374
  • 浏览: 93671 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Thread的层次结构

阅读更多
要弄清楚Thread的层次结构,必须先弄清楚它的参照系。看看“The Futures of Ruby Threading”这段话:“Current stable releases of Ruby use user space threads (also called "green threads"), which means that the Ruby interpreter takes care of everything to do with threads. This is in contrast to kernel threads, where the creation, scheduling and synchronization is done with OS syscalls, which makes these operations costly, at least compared to their equivalents in user space threads.”这里的用户空间线程和内核线程是相对于Ruby解释器来说的。如果把参照系换成操作系统,此处的内核线程只是一个用户空间线程。

常说Java线程是Native thread,是说Java的一个线程映射到操作系统上的一个用户线程。往下随后怎么映射就要看操作系统的实现了。可以看看Solaris的线程模型这里也有些说明资料。

不过Java线程也并不一定是一一映射的,比如Jikes RVM虚拟机,采用了M:N模型,而不是大家经常看到的1:1,具体资料可以看这里。BEA的JRockit是两个都有,既支持1:1模型,也支持M:N模型,叫Thin Thread。

在JVM上实现了M:N模型,当然在操作系统上也可以实现M:N模型,只是层次不同,抽象级别不同。象Solaris就实现了M:N模型,不过这个模型在Solaris 9中已经放弃,为什么?实现太难。“It is not to say that a good implementation of the M:N model is impossible,but simply that a good 1:1 implementation is probably sufficient. ”想更进一步了解Solaris多线程的发展历程,看这个pdf吧(www.sun.com/software/whitepapers/)。

了解清楚Thread的层次结构,碰到Green Thread,Native Thread,User space Thread,Kernel Thread时才不会糊涂。
分享到:
评论

相关推荐

    docker-elasticsearch-5.2-cgroups2:修复了ES 5.2.2(https中对cgroup版本2层次结构的支持

    码头工人-elasticsearch-5.2.2-cgroups2 修复了ES 5.2中对cgroup版本2层次结构的支持( )。 ES 5.2在启动支持cgroups v2( )的较新内核(例如Ubuntu 18.04 LTS的默认内核)时出现问题。 启动ES时的例外是: [2018-...

    tree树形数据结构

    3.Thread:Thread是代表一系列Message的层次结构.可以理解成是messages的目录,是"枝";那么帖子messages当然就是"叶";"枝"和"叶"的区别就是:"枝"下面还可以有"枝"或"叶";而"叶"就是单独元素了.典型的树形数据结构出来...

    西安交大JAVA 基础讲义

    5.详细讲述了JAVA的输入和输出流,尤其对inputStream和outputStream接口和实现类的类层次结构做了全面介绍 6.JAVA的图形用户界面GUI,对AWT,SWING等图形组件做了详细介绍 7.JAVA线程的概念,对Thread,Runable的实现...

    java多线程设计模式详解(PDF及源码)

    目录 漫谈UML UML 类图 类和层次结构的关系 接口与实现 聚合 访问控制 类间的关联性 顺序图 处理流程和对象间的协调 时序图 Introduction 1 Java语言的线程 Java语言的线程 何谓线程 明为追踪处理流程,实则追踪...

    深入浅出MFC【侯捷】

    第3章 MFC六大关键技术之仿真 MFC类层次结构 Frame 1范例程序 MFC程序的初始化过程 Frame 2范例程序 RTTI(执行期类型识别) 类别型录网与CRuntimeClass DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏 Frame 3范例程序 Is...

    深入浅出MFC 2e

    不二法门:熟记MFC类的层次结构 需要什么函数库? 需要什么头文件? 简化的MFC程序结构——以Hello MFC为例 Hello程序程序代码 MFC程序的来龙去脉(causal relations) 我只借用两个类:CWinApp和CFrameWnd CWinApp...

    侯捷- -深入浅出MFC

    不二法门:熟记MFC类的层次结构 需要什么函数库? 需要什么头文件? 简化的MFC程序结构——以Hello MFC为例 Hello程序程序代码 MFC程序的来龙去脉(causal relations) 我只借用两个类:CWinApp和CFrameWnd CWinApp...

    Harmony:Playnite的桌面主题

    使用简单的调色板,无需边框即可使用颜色获得更好的对比度和层次结构。 使用所选的货盘以及某些元素(例如,窗口,边框,按钮和控件)中的圆角,实现更现代,更干净的设计。 通过某些部分的小动画来改善用户体验。...

    NET组件程序设计 第2版中文版.part3.rar )

    序列化和类层次结构 第10章:远程处理 应用程序域 远程对象类型 引用封送激活模式 .NET Remoting架构 构建分布式应用程序 租赁和赞助 .NET与位置透明 第11章:上下文与拦截 .NET组件服务 .NET上下文 自定义组件服务 ...

    《Java和Android开发实战详解》第6到10章源代码-by 南邮-陈杨

    8.1.1 类层次结构 142 8.1.2 类的继承 143 8.1.3 重写和隐藏父类的方法 145 8.1.4 隐藏父类的成员变量 147 8.1.5 使用父类的构造函数 149 8.2 接口 151 8.2.1 接口简介 151 8.2.2 创建与使用接口 ...

    深入浅出MFC-简体版(2)PDF

    MFC类层次结构 Frame 1范例程序 MFC程序的初始化过程 Frame 2范例程序 RTTI(执行期类型识别) 类别型录网与CRuntimeClass DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏 Frame 3范例程序 IsKindOf(类型识别) Frame 4范例...

    java初学者必看

    13.2.1 Swing的类层次结构 13.2.2 Swing特点 13.2.3 Swing程序结构简介 13.3 Swing组件 13.3.1 按钮(Jbutton) 13.3.2 复选框(JCheckBox) 13.3.3 单选框(JRadioButton) 13.3.4 组合框(JComboBox) 13.3.5 进程...

    (全)传智播客PHP就业班视频完整课程

    10-25 2 jquery id选择器 层次选择器 10-25 3 jquery过滤选择器及练习题讲解 10-25 4 内容过滤器 可见度过滤器及练习讲解 10-26 1 课程回顾 10-26 2 属性过滤选择器 10-26 3 子元素选择器 表单对象属性选择器 10-26 ...

    Java开发技术大全 电子版

    14.5.3使用Swing组件编写GUI的层次结构468 14.6顶层容器469 14.6.1框架类(JFrame)使用示例469 14.6.2小应用程序(JApplet)使用示例472 14.6.3对话框(JDialog)使用示例473 14.7中间容器476 14.7.1面板...

    汪文君高并发编程实战视频资源全集

     高并发编程第三阶段18讲 CountDownLatch经典案例讲解如何给离散平行任务增加逻辑层次关系-下_.mp4  高并发编程第三阶段19讲 CyclicBarrier工具的使用场景介绍_.mp4  高并发编程第三阶段20讲 CyclicBarrier vs ...

    汪文君高并发编程实战视频资源下载.txt

     高并发编程第三阶段18讲 CountDownLatch经典案例讲解如何给离散平行任务增加逻辑层次关系-下_.mp4  高并发编程第三阶段19讲 CyclicBarrier工具的使用场景介绍_.mp4  高并发编程第三阶段20讲 CyclicBarrier vs ...

    JAVA基础课程讲义

    容器中的接口层次结构 136 Collection接口 137 LIST接口 137 SET接口 138 Map接口 138 Iterator接口 139 遍历集合 140 Collections工具类 141 Comparable接口 141 equals和hashcode方法 143  泛型 144 思考作业 ...

Global site tag (gtag.js) - Google Analytics