Java's sophisticated memory management, native support for threading and concurrency, type safety, and relative simplicity have created a demand for its use in many domains.
A number of implementations of the resulting Real-time specification for Java (RTSJ) have emerged, including a reference implementation from Timesys, IBM's WebSphere Real Time, Sun Microsystems's Java SE Real-Time Systems,[4] PTC Perc from PTC, Inc.,[5] or JamaicaVM from aicas.
The RTSJ addressed the critical issues by mandating a minimum specification for the threading model (and allowing other models to be plugged into the VM) and by providing for areas of memory that are not subject to garbage collection, along with threads that are not preemptable by the garbage collector.
The latest specification, 2.0, supports direct device access and deterministic garbage collection as well.
RTSJ 1.0 was developed as JSR 1 under the Java Community Process, which approved the new standard in November, 2001.