期刊发表网电话

全国热线
022-83699069

java虚拟机用户级多线程设计与实现

作者: 发布时间:2020-01-17 11:43:58 阅读: 45 次

 

摘要:经济的发展推动了信息技术的发展,我国在信息技术的自主研发上也取得了相当的成果。首先本文详细介绍了国产开放系统平台Java虚拟机多线程的设计与实现。在线程调度上,为了能够有效地改善单独循环线程的调度方面的弊端,运用了拥有单独型号的静态等级循环调度。另外在同步线程方面,使用了哈希混合锁的相关原理。经过实践证实了,这种锁具备小空间、较高效率的执行操作等优势。

关键词:Java;虚拟机;用户级多线程.

 

1 论述

在虚拟环境中Java程序所运作的形式就是通过线程实现的。在运行应用程序之前,就会有一个称作main的主线程被虚拟机自动创建。同时在之后的运作程序中,这个主线程的负责就由虚拟机进行,所以虚拟机中主要的数据程序就是线程。另外线程类的使用者能够通过Java语言建立属于自身的线程。不管是JVM系统线程,还是用户程序创建的线程,两种线程在同一个环境中被认为是一个整体的线程方。所以在进行解释线程数据的含义的时候需要保持双方的统一性,这样能够方便虚拟机实施整体上的负责和维护线程。任何的线程都被虚拟机进行负责管理,比若说线程和线程运作环境之间在何时进行变换等。所以光是拥有线程数据程序是没有用的,所以应当帮助其制作相对的线程背景内容。线程背景内容主要是为了记载线程空间的内存位置、相关的线程队列信息、线程的恢复执行点以及自身的状态等内容。所以在确定线程背景信息和线程之间的相互关系时可以运用PrivateInfo这样的线程类的案例变量来进行。在JVM,虚拟机在运作的时候所产生的命令程序数据是提供给线程栈空间的,并且它也可以按照空间的具体情况来进行分配。

2 介绍方法

有关线程的调度方法并没有相对应的规定。通常情况下,有以下几种方法:

(1) FIFO(first in first out)调度。这种调度的方法通常是按先后顺序服务对象,在任何情况下都能够进行运转,一直到结束运转或者出现故障的时候终止。通常运用的线程的调度是比较敏感于时间的控制。

(2)静态级别轮巡调度。在这样的程序之下首先被运行的是优先级更高的线程,一直到结束运转或者出现故障的时候终止,在这之后才能够实施下一个线程。当线程是相同的优先级的时候应当依据分时的规则运行。现在,线程调度通过这种方式进行的操作系统是AIX,DCE

 (3)动态级别轮巡调度。在这样的方式下,线程的调度是动态的,通常依据其运转的时间和次数。现在运用这种方法进行线程调度的是WindowsNTOS/2。线程的优先级是由Java语言进行确定的,10是线程的更高优先级,1是线程的更低优先级。所以后两种的调度方式是经常被虚拟机所使用。现在Java虚拟机主要以Sun公司和Microsoft公司的产品为主,其中虚拟机对于Java线程实现都是通过操作系统的线程来进行的。所以详细的操作系统是JVM线程调度方式所依靠的程序。静态级别轮巡调度即使对相关的线程的优先级进行考虑到,然而因为其调度的顺序是严格依据优先级来进行的,所以也许会造成优先级较低的线程因为长期地等待而得不到运转。相对的动态级别轮巡调度使得任何一个线程都能够被运行,不过会造成频繁地线程变换,所以其运转效率不是很高。我们在程序设计时经常会设计这样的线程——它们相对独立且无条件地重复执行。

对单独运行调度的循环线程的问题进行解决是这个设计的重要目标,并且这个线程同时可以用于独立队列。这样的话就能够有效地解决那些优先级较低的线程因为长期等级而得不到执行的问题,并且也能够使得循环线程的运行不停止的需求得到满足。在运转功能上,确定了随着不断减少的分时执行线程的数量,进而提高了系统的执行效率,这样就能够使得多个线程变换的时间得到减少,并且其功能也只是介于静态级别轮巡调度与动态级别轮巡调度之间。

3 线程同步

线程同步的问题一直都是困扰在多线程之间的问题。同步言语和同步策略被Java语言所提供,能够使得多线程的资源的运用实现共享和协调。在虚拟机中,锁是与任何一个相对应的Java对象及类相联系的,当共享资源被线程使用时,这时候其首先需要得到共享资源所在对象(或类)的锁。如果其他的线程已经使用的该锁,那么这个线程就需要进到等候锁的行列,一直到那个对象或类释放这个锁。如果线程得到对象锁使得共享资源得到释放,也需要对该锁进行释放,若果这个锁有等待对象,那么得到该锁的就是个等待的线程。在Java语言中,Java语言中,同一个对象或类可以被同一线程实行加锁。

4 总 结

综上所述,本文首先浅述了有关我国如何设计开放系统平台Java虚拟机多线程的,然后在线程调度上,为了能够有效地改善单独循环线程的调度方面的弊端,运用了拥有单独型号的静态等级循环调度。另外在同步线程方面,使用了哈希混合锁的相关原理。经过实践证实了,这种锁具备小空间、较高效率的执行操作等优势。现在我国在自主研发开放系统平台Java虚拟机与编译器方面已经大体上完成了,期望能够和有兴趣的读者一起研究有关这方面的技术。

参考文献:

[1] 丁宇新,程虎. Java虚拟机异常处理机制的设计与实现[J]. 计算机研究与发展 , 2000,(05) .

[2] 孙希,俞建新. Java虚拟机新技术探讨[J]. 计算机应用 , 2001,(S1) .

[3] 杨博,王鼎兴,郑纬民. 一个基于混合并发模型的Java虚拟机[J]. 软件学报 , 2002,(07) .

[4] 王立冬,张凯. Java虚拟机分析[J]. 北京理工大学学报 , 2002,(01) .