Multi-threading is built into the VM
Both the Java language and its runtime have built in threads which are extensively used
Threads are "light-weight" processes (unlike UNIX processes), which communicate by a combination of shared memory and message passing
- This communication mechanism is employed naturally by Java
Java threads are limited and for those coming from an HPCC background, we note Java threads have no immediate support for some key parallel computing concepts such as distributed memory (threads running in separate operating system instances)
Java threads are based on a locking mechanism using monitors for synchronization, introduced by Hoare in 1974