From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100144.html | 123 +++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100144.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100144.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100144.html b/Master/Reference Architectures and Patterns/hjp5/html/k100144.html new file mode 100644 index 0000000..dcfd0d4 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100144.html @@ -0,0 +1,123 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 22 - Multithreading +
+
+ + + + +

22.1 Grundlagen und Begriffe

+
+ +
+ +

+Kaum eine wichtige Programmiersprache der letzten Jahre hat das Konzept +der Nebenläufigkeit innerhalb +der Sprache implementiert. Mit Nebenläufigkeit bezeichnet man +die Fähigkeit eines Systems, zwei oder mehr Vorgänge gleichzeitig +oder quasi-gleichzeitig ausführen zu können. Lediglich ADA +stellt sowohl parallele Prozesse als auch Mechanismen zur Kommunikation +und Synchronisation zur Verfügung, die direkt in die Sprache +eingebettet sind. Durch Weiterentwicklungen im Bereich der Betriebssystemtechnologie +wurde allerdings das Konzept der Threads +immer populärer und auf der Basis von Library-Routinen auch konventionellen +Programmiersprachen zur Verfügung gestellt. + +

+Java hat Threads direkt in die Sprache integriert und mit den erforderlichen +Hilfsmitteln als Konstrukt zur Realisierung der Nebenläufigkeit +implementiert. Ein Thread ist ein eigenständiges Programmfragment, +das parallel zu anderen Threads laufen kann. Ein Thread ähnelt +damit einem prozess, arbeitet aber auf einer feineren Ebene. +Während ein prozess das Instrument zur Ausführung eines +kompletten Programms ist, können innerhalb dieses Prozesses mehrere +Threads parallel laufen. Der Laufzeit-Overhead zur Erzeugung und Verwaltung +eines Threads ist relativ gering und kann in den meisten Programmen +vernachlässigt werden. Ein wichtiger Unterschied zwischen Threads +und Prozessen ist der, dass alle Threads eines Programms sich einen +gemeinsamen Adreßraum teilen, also auf dieselben Variablen zugreifen, +während die Adreßräume unterschiedlicher Prozesse +streng voneinander getrennt sind. + +

+Die Implementierung von Threads war eine explizite Anforderung an +das Design der Sprache. Threads sollen unter anderem die Implementierung +grafischer Anwendungen erleichtern, die durch Simulationen komplexer +Abläufe oft inhärent nebenläufig sind. Threads können +auch dazu verwendet werden, die Bedienbarkeit von Dialoganwendungen +zu verbessern, indem rechenintensive Anwendungen im Hintergrund ablaufen. + +

+Threads werden in Java durch die Klasse Thread +und das Interface Runnable +implementiert. In beiden Fällen wird der Thread-Body, also der +parallel auszuführende Code, in Form der überlagerten Methode +run +zur Verfügung gestellt. Die Kommunikation kann dann durch Zugriff +auf die Instanz- oder Klassenvariablen oder durch Aufruf beliebiger +Methoden, die innerhalb von run +sichtbar sind, erfolgen. Zur Synchronisation stellt Java das aus der +Betriebssystemtheorie bekannte Konzept des Monitors +zur Verfügung, das es erlaubt, kritische Abschnitte innerhalb +korrekt geklammerter Programmfragmente und Methoden zu kapseln und +so den Zugriff auf gemeinsam benutzte Datenstrukturen zu koordinieren. + +

+Darüber hinaus bietet Java Funktionen zur Verwaltung von Threads. +Diese erlauben es, Threads in Gruppen zusammenzufassen, zu priorisieren +und Informationen über Eigenschaften von Threads zu gewinnen. +Das Scheduling kann dabei wahlweise unterbrechend oder nichtunterbrechend +implementiert sein. Die Sprachspezifikation legt dies nicht endgültig +fest, aber in den meisten Java-Implementierungen wird dies von den +Möglichkeiten des darunter liegenden Betriebssystems abhängen. +


+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3