JAVA实时编程规范:
RTSJ实现必须包含是个类的定义,实现Schedualable:RealtimeThread、NoHeapRealtioneThread、AsyncEventHandler、BoundAsyncEventHandler。
内存管理:
RTSJ定义了共有四种内存区域:标准的JAVA堆、作用域内存、不朽内存和物理内存,这些区域被JAVA类代表,每个扩展了MemoryArea轴基类,他们分别是:HeapMemory、ScopedMemory、ImmortalMemory、ImmortalPhysicalMemory,每个表示各自的内存区域。
堆:表示动态分配和自动回收的JAVA对象使用的并被单身JAVA对象HeapMemory引用的可用的内存区域。
作用域内存:这是一个ScopedMemory类或其之内的对象所代表的内存区域。你在开发是创建和确定其大小。你可以指定参数,撸作用域的处事大小,可以增长到的最大尺寸,以及可选的将在此作用域内自行的Runnable对象。其类图为:
在创建对象是,每个线程的有一个与之对应的分配上下文,或者是一个内存的区域,但作用于的其中一个enter方法被调用时,或者在Schedualble对象作为参数使用ScopedMemory对象时,Schedulable对象将开始在作用域内存区域内自行。一旦发生,这种情况,所有分配的内存和创建的对象将会自此作用于吃作用域内存区域。
另外作用域内存是通过引用计数器的方式来一次性回收的。
不朽内存:是一个特殊的实时JAVA虚拟机启东市创建的全局区域,在RTSJ中,只有一个不朽的内存区域,而且在其中创建的对象穿在于JAVA虚拟机的生命周期,因此获得不朽的名字。不朽内存中的对象可以从任何地方被引用,并且可以应用除作用域内存区域外的其他任何地方贮存的对象。不朽内存可以被实现了Ruannablehe和Schedulable的对象访问。
默认情况下,所有的静态数据驻留在不朽内存中,如被拘禁的String对象和执行在哪里的静态初始化方法一样。不朽内存是有限的非垃圾回收的资源,如果你生命静态的变量和类,而且经常在代码中使用静态初始化快,那么会迅速耗尽不朽内存。
必须内存类似于JAVA虚拟机中的“永远年轻代”!
物理内存:三个可以使对象在指定范围的物理内存中创建的类似LTPhysicalMemory、VTPhysicalMemory和ImmortalPhysicalMemory。作为构建者,这些内存区域的每一个都用参数指定该区域的物理内存的基地址、大小和对象模型。