快速业务通道

使用实时Java进行开发,第1部分 探索实时Java的独特功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

使用实时Java进行开发,第1部分 探索实时Java的独特功能

时间:2011-01-27 IBM Sean C. Foley

实时 Java 是对 Java 语言的一组增强,为应用程序提供了一定程度的实时性能,这些实时性能是标准 Java 技术所不能提供的。传统的吞吐量性能通常是对可在固定时间量内完成的指令、任务或工作的总数的衡量。与传统的吞吐量性能不同,实时性能专注于应用程序(在不超出给定时间约束的情况下)响应外部刺激因素所需的时间。在硬 实时系统中,决不能超出这类约束;软 实时系统对违规具有更高的容忍度。实时性能要求应用程序本身控制处理器,以便它能够响应刺激因素,并且在响应刺激因素的同时,虚拟机内的竞争进程不会阻止应用程序代码的执行。实时 Java 在 Java 应用程序中交付了前所未有的响应能力。

实时 JVM 可利用实时操作系统(real-time operating system,RTOS)服务来提供硬实时功能,或者可以为具有比较软的实时约束的应用程序运行一个或多个传统操作系统。在使用实时 JVM 时,可以免费使用实时 Java 中使用的一些技术。但是为了探索实时 Java 中的一些特性,需要对应用程序进行一些更改。这些特性是本文介绍的重点。

必须约束的子进程

JVM 服务是一个执行工作的给定应用程序,这些工作仅能被该应用程序松散地控制。一些运行时子进程在 JVM 内部运行,包括:

垃圾收集:此任务用于收回应用程序不再使用的运行时内存块。垃圾收集可以使应用程序执行延迟一段时间。

类加载:此进程(之所以称为类加载,是因为 Java 应用程序是在类粒度级别加载的)涉及从文件系统或网络加载应用程序结构、指令和其他资源。在标准 Java 中,应用程序在第一次引用一个类时加载这个类(延迟 加载)。

即时(Just-in-time,JIT)动态编译:许多虚拟机在应用程序运行时通过动态编译将方法由 Java 字节码解释为本地机器指令。尽管这可以提高性能,但编译活动本身可能导致临时延迟,阻止应用程序代码运行。

调度:在标准 Java 中,应用程序只有极小的控制权限来调度自己的运行线程,以及调度与在同一操作系统上运行的其他应用程序相关的应用程序。

所有这些子进程都可能限制应用程序响应外部刺激因素的能力,因为它们可能延迟应用程序代码的执行。例如,可以调度一个指令序列来响应来自网络、雷达系统、键盘或任何其他设备的信号。实时应用程序具有一段很短的可接受时期,在此期间,允许不相关的进程(比如垃圾收集)延迟响应指令序列的执行。

实时 Java 提供了各种技术,旨在最小化底层子进程对应用程序的干扰。切换到实时 JVM 时可使用的 “免费” 技术包括:限制了收集操作的持续时间和干扰影响的专门垃圾收集,允许在启动时优化性能(而不是延迟优化)的专门的类加载,专门的锁定和同步,以及能够避免优先级反转的专门的优先线程调度。但是,可能需要对应用程序进行一些修改,要利用 Java 实时规范(Real-Time Specification for Java,RTSJ)引入的特性时更应如此。

RTSJ 提供了一个支持 JVM 中大量实时特性的 API。一些特性在规范实现中是强制性的,另一些是可选的。规范包括以下一般区域:

实时调度

高级内存管理

高精度计时器

异步事件处理

异步线程中断

Realtime 线程

RTSJ 定义了 javax.realtime.RealtimeThread — 标准 java.lang.Thread 类的一个子类。从本质上讲,RealtimeThread 支持规范中的一些高级特性。例如,实时线程受实时线程调度器控制。该调度器提供了一个独特的调度优先级范围,可以实现先入先出的实时调度策略(确保最高优先级的线程不会受到干扰),以及优先级继承(该算法可阻止较低优先级线程无限期地持有需要不受干扰地运行的较高优先级线程所需的锁,这种情形称为优先级反转)。

可以在代码中

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号