Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Java 21: Immer Ärger mit dem Stack

Die Virtual Threads in Java 21 sind toll, aber warum hat das so lange gedauert und warum sind sie überhaupt notwendig? Die „alten“ Threads sind bekanntlich schwergewichtig, da sie mit Betriebssystem-Threads implementiert sind. Aber warum ist das eigentlich so? Das Geheimnis hat zu tun mit den sogenannten „Continuations“, die zentral für die Implementierung von Virtual Threads und Threads überhaupt sind. Dieser Artikel erklärt, was Continuations sind, wie sie in der JVM implementiert sind, was sie mit Stacks zu tun haben und was bei Virtual Threads den Unterschied macht.

Threads erlauben einem Programm, mehrere Dinge „gleichzeitig“ zu tun. Dabei geht es aber eigentlich um zwei unterschiedliche Aspekte:

  • Ein Programm möchte mehrere Dinge parallel tun, um erhöhte Performance auf Multicore-Systemen zu erreichen.
  • Ein Programm möchte auf mehrere Dinge gleichzeitig warten, weil nicht bekannt ist, was als Nächstes passiert.

Beim ersten Aspekt sprechen wir von Parallelität, beim zweiten von Nebenläufigkeit (concurrency).

Um Parallelität zu nutzen, stellen moderne Betriebssy…