实时Java,第5部分 - 编写和部署实时Java应用程序 - 编程入门网
因为您可能没有内存来执行这些操作。一种选择是在所有环境中提供足够的开销,在崩溃之前打印几行调试信息,但这不太现实。
我们发现的最好方法就是为各错误处理条件创建一个类,扩展 Runnable,并提供方法来提供关于故障的数据(这样您就能够获得足够的信息,了解究竟发生了什么)。预先创建此类的一个实例,以便随时使用,而无需占用内存。预留出足够大的作用域存储区来执行错误处理操作。 通过一个预先分配的 Runnable 对象和一个单独的作用域,在错误发生时,您就应该总是能够报告问题,而无需使用任何内存。对于不可能创建对象时抛出 OutOfMemoryError 之类的场景来说,这是非常有用的。 我们在 Sweet Factory 演示程序的 ProductionLinePoller 类中演示了这种技巧,其中定义:若无法从池中获取 Measurement,则使用 errorReportingRunnable。 结束语 我们介绍了如何在 WebSphere Real Time 平台上开发和部署 RT Java 应用程序,从而满足日益紧迫的确定性特征要求。与编写普通的基于堆的应用程序相比,使用非堆内存的 NHRT 编程使工作量大大提高。考虑 Sweet Factory 演示程序。在堆环境中编写类似的功能只是小事一桩。Java SE 标准库已提供了我们需要的大部分功能,包括线程池和集合类。 使用 NHRT 的最大阻碍就是不仅有许多新技术要去学习,许多从 Java SE 中总结出来的最佳实践 —— 包括大多数模式 —— 均不适用,且会导致内存泄漏。 令人高兴的是,您可以使用 WebSphere Real Time 完成许多软 RT 目标,无需在 NHRT 上调用构造方法。Metronome 垃圾收集器的性能使您能够获得可预测的执行,达到几毫秒的精确度。然而,如果您需要最大化的响应性并乐于迎接挑战,WebSphere Real Time 的非堆特性将帮您实现目标。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |