Nebenläufigkeit in Java und C++ - Michael Ziegenbalg - E-Book

Nebenläufigkeit in Java und C++ E-Book

Michael Ziegenbalg

0,0
0,99 €

oder
-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Die Nebenläufigkeit ist eine der imposantesten Eigenschaften moderner Betriebssysteme, was diesen eine gewisse Faszination verleiht und wodurch sie ihre größte Wirkung erzieheln. Daher ist es für jeden Informatiker unerlässlich, sich damit auseianderzusetzen.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Michael Ziegenbalg

Nebenläufigkeit in Java und C++

BookRix GmbH & Co. KG80331 München

Nebenläufigkeit mit Java und C++

von

 

 

Michael Ziegenbalg 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Das Konzept der Nebenläufigkeit

 

Im Zusammenhang mit der Threadprogrammierung werden drei verschiedene Begriffe unterschieden:

 

Prozeß

Vorgänge

Thread

 

Im Rahmen einer allgemeinen Erläuterung des Begriffes Nebenläufigkeit, also ohne genaueren Bezug zu einer Umsetzung mit z.B. Java oder C++, sind in einem System mehrere relativ voneinander unabhängige Prozesse ausführbar. Parallelrechner, die mit vielen Prozessoren gleichzeitig Prozesse ausführen und verteilte Systeme werden hier nicht betrachtet. Auf einem Einzelprozessorsystem sind gleichzeitige Prozesse wie z.B. Drucken, Bildschirmausgaben und Tastatureingabe nur scheinbar unabhängig voneinander. Moderne Betriebssysteme stellen mit präemptiven Multitasking Mittel bereit, um Nebenläufigkeit zu organisieren. Dabei wird in diesem Zusammenhang von der Dornröschenmethode gesprochen. Ein Prozeß teilt dem Betriebssystem im Prinzip mit: „Weck mich auf, wenn das Ereignis, auf das ich warte, eingetreten ist“, und legt sich schlafen. Hierzu gibt es in modernen Betriebssystemen spezielle Techniken, die auf Unterbrechungen (Interrupts) basieren. Das Warten auf ein Ereignis ist oft, aber nicht zwangsläufig mit dem Deaktivieren des Prozesses verbunden. Moderne Betriebssysteme regeln dieses Warten mit Techniken, wobei wartende Prozesse deaktiviert werden, um sie beim Eintreten des erwarteten Ereignisses wieder zu aktivieren. Bei der Threadprogrammierung sollte man sich allgemein auf die Behandlung des Wartens konzentrieren und das Aktivieren/Deaktivieren dem Betriebssystem überlassen.

 

Bei einem Bezug zur Threadprogrammierung können mit Hilfsmitteln Programme erstellt werden, in denen mehrere Vorgänge „gleichzeitig“ ausgeführt werden können. In Java und C++ steht dafür ein direkt in die Sprache integriertes Hilfsmittel zur Verfügung, nämlich die Möglichkeit der Threadprogrammierung. Ein Thread ist ein eigenständiges Programmfragment, das parallel zu anderen Threads laufen kann. Man spricht deshalb in diesem Zusammenhang von Vorgängen, weil ein Thread auf einer feineren Ebene arbeitet. Während ein Prozeß das Instrument zur Ausführung eines kompletten Programmes ist, können innerhalb dieses Prozesses mehrere Threads parallel laufen. Ein wichtiger Unterschied zwischen Threads und Prozessen liegt darin, daß sich alle Threads eines Programmes einen gemeinsamen Adreßraum teilen, also auf gleiche Variablen zugreifen, während die Adreßräume unterschiedlicher Prozesse streng voneinander getrennt sind. Threads sollen u.a. die Implementierung grafischer Anwendungen erleichtern, die durch Simulationen komplexer Abläufe erheblich nebenläufig sind. Auch die Bedienbarkeit von Dialoganwendungen kann verbessert werden, indem rechenintensive Anwendungen im Hintergrund ablaufen.