1.2.3 | Multithreaded |
Für eine Vielzahl von Anwendungen wie Server für Netzwerkdienste oder auch Programme mit grafischer Oberfläche ist es sinnvoll, die Ausführung in mehrere einzelne Prozesse bzw. Threads zu unterteilen, die unabhängig voneinander ablaufen. Damit kann sich ein Thread um die Aktualisierung der Bildschirmausgabe kümmern, während ein anderer Prozess über einen TCP/IP-Socket mit einem Server kommuniziert und andere Datenstrukturen manipuliert.
Über entsprechende Klassen und Sprachkonstrukte bietet Java von vornherein Unterstützung für die Entwicklung von parallel ausgelegten Programmen. Nebenläufigkeit bedingt jedoch auch, dass die üblichen Methoden zur Interprozess-Kommunikation und Synchronisation implementiert sind. Java bietet hier Primitiven, die sich an den Monitoren und Condition Variables orientieren, wie sie von C.A.R. Hoare eingeführt wurden.