操纵及时Java举行开辟,第1部份 摸索及时Java的独特功效[Java编程]
本文“操纵及时Java举行开辟,第1部份 摸索及时Java的独特功效[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
及时 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 支持标准中的一些高级特点.比方,及时线程受及时线程调度器掌握.该调度器供应了一个独特的调度优先级范围,可以实现先入先出的及时调度战略(确保最高优先级的线程不会遭到干扰),以及优先级担当(该算法可禁止较低优先级线程无期限地持有需求不受干扰地运行的较高优先级线程所需的锁,这种情形称为优先级反转).
可以在代码中明确构造 RealtimeThread 的实例.但是也可以轻松更改利用程序来启用及时线程,从而避免沉重的开辟工作和相关本钱.这里给出了干扰最小且最透明地启用及时线程的各种方法的示例.这些技术使利用程序可以最轻松地操纵及时线程,使利用程序可以保持与尺度虚拟机兼容.
以上是“操纵及时Java举行开辟,第1部份 摸索及时Java的独特功效[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |