- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java虚拟机线程机制的分析与改造
阎慧汪永红龚雪晶
(总装指挥技术学院电子技术系计算机应用教研室)
摘要本文主要介绍了Java线程的基本概念以及Java语言的线程机悄,并通过具体Java
虚拟机的代码分析.探讨线程机制的内部实现原理和改造思想,从而为Java虚拟机的设计实现
提供技术上的借鉴。
关键词Java技术线程
Java语言的一个重要特性是在语言级支持多线程的程序设计,而多线程是实现并发的
~种有效手段。本文将首先介绍Java线程的基本概念和Java语言的线程机制,然后以一个
具体的Java实现平台的剖析,来深入理解线程机制的内部实现原理和改造思想。
1 Java线程的基本概念
I.1 Javl线程的创建
的创建:
的对象术创建线稃。由于Java语言并不支持多重继承,即子茭只能有一个超类,这样用第
种力法定义线氍沐时就不能从其它类中继承。
2.另御山法是通过在类中实现Runnable界面.并在该类中提供run0方法的实现。
该方法为线程的创建提供了更大的灵活性。【q以使线程继承非71hread类。
1.2davtt线程的基本状态
征年u它们之问的相互转换与传统操作系统的进程机制基本类似。
,.3线程组的概念
在Java中,所有的线程一定足属于某个线程组。线程组提供了将一组线程作为一个单
独的对象进行统一处理或维护的手段,如通过线程组,程序员能用一个方法统一调用、启动
建的线程都没有指定线程绸,则这些线程都属于main线程组。
2线程机制的深入分析
为便于分析线程的实现机制,我们以一个具体的Java虚拟机代码为例。Kaffe源代码
的功能。F面的分析是根据基于UNIX平台的KaffeO.10.0版本代码进行的。
2‘’与线程相关的数据结构
116
1,线程结构
对象信息的结构指针
名字
优先级
下一个线程的指针
线程上下文结构的指针 线程上下文结构
目标对象
异常块指针
异常处理块
异常对象指针
精灵线程标识
线程组指针
图l线程的数据结构示意图
2.线程上下文结构
塑旦虐型盟童工二全垡焦塑塑盐
线程状态
优先级
运行现场的恢复点
栈顶地址、栈底地址
睡眠定时
指向所在队列的下一个线程的指针
指向睡眠队列的指针
指向阻塞队列的指针
功能代码地址
环境变量指针
图2线程上下文结构示意图
2.2关于娩程的摄作和线程的调虞
1.调度机制
为了支持多线程的执行,Java运行系统中自己实现了一个用于调度线程执行的线程调
度器,线程调度器用来确定某一时刻是由哪一个线程在CPU上运行。Java线程采用基于优
先级的、抢先的调度机制。
程被创建时,该线程从父线程中继承优先级,而在线程创建后,用户可以用线程类中的
机按优先级组织了多个运行队列,同优先级的可运行线程放在一个队列内,Java运行系统
将从这些线程中选择优先级最高的线程执行。
·117
只有当运行中的高优先级线程停“‘或自己调用了yield0方法或因其它原因使线程的
状态变为Not
文档评论(0)