Note: The first paragraph is outdated. Jikes RVM uses native threading since 3.1.0: For every Java thread, an instance of
RVMThread is created which maps directly to a pthread (see
For each physical processor on the system, the system creates a pthread. Each pthread is associated with a virtual processor object that executes one or more Java threads in a quasi-preemptive manner, as follows. Each compiler generates yield points, which are program points where the running thread checks a dedicated bit in the virtual processor object to determine if it should yield to another thread. The compilers insert yield points in method prologues, method epilogues, and on loop backedges. Currently, the system sets the thread-switch bit approximately every 10ms.