next up previous contents
Next: Techniken zur Programmausführung Up: Nebenläufigkeit Previous: Interaktion mit anderen VM-Komponenten   Inhalt

Zusammenfassung

Nebenläufigkeit spielt eine große Rolle in der Komplexität von Java-Implementierungen im Vergleich zu anderen Programmiersprachen. Obwohl Nebenläufigkeit kein neues Konzept ist, erheben moderne Java-Implementierungen als erste den Anspruch, gleichermaßen eine große Zahl von Threads zu unterstützen und vorhandene Ressourcen von Mehrprozessormaschinen auszunutzen.

Eine große Anzahl aktiver Thread erfordert effiziente Kontextwechsel und sparsamen Umgang mit Systemressourcen pro Thread. Auf der anderen Seite erfordern Multiprozessoren die Kommunikation mit dem Betriebssystem und die Belegung von Systemressourcen und werfen somit Skalierungsprobleme auf.

Synchronisierung in Java ist ubiquitär. Jedes Objekt kann potentiell zur Synchronisierung verwendet werden; nur bei einem Bruchteil findet dies tatsächlich statt. Es müssen daher platzeffiziente Kodierungsschemata für ungenutzte Monitore gefunden werden. Insbesondere durch Bibliotheksabstraktionen weisen Java-Programme zudem eine außerordentlich hohe Zahl von Synchronisierungsoperationen auf, obwohl keine Konkurrenz besteht. Gerade diese Präventivoperationen müssen hocheffizient implementiert oder durch Programmanalyse gar eliminiert werden. Die thread-sichere und trotzdem effiziente Implementierung anderer VM-Komponenten stellt weitere Herausforderungen an den Sprachimplementierer.

Kapitel 5 ist Implementierungstechniken zur Realisierung von Nebenläufigkeit in virtuellen Maschinen gewidmet.




2001-02-28