lehrerbibliothek.deDatenschutzerklärung
Parallele Programmierung mit Java Threads  mit CD-ROM
Parallele Programmierung mit Java Threads


mit CD-ROM

Rainer Oechsle

Carl Hanser Verlag , Fachbuchverlag Leipzig
EAN: 9783446217805 (ISBN: 3-446-21780-0)
172 Seiten, paperback, 16 x 23cm, Oktober, 2001

EUR 14,90
alle Angaben ohne Gewähr

Umschlagtext
In diesem Buch werden anhand zahlreicher Beispiele grundlegende Synchronisationskonzepte für die Programmierung nebenläufiger (paralleler) Abläufe präsentiert, die zur Grundlagenausbildung des Informatik-Studiums gehören. Diese zum großen Teil klassischen Konzepte aus dem Bereich der Betriebssysteme werden in einem modernen, objektorientierten Zusammenhang mit Hilfe von JavaThreads dargestellt. Das Buch ist keine Einführung in Java, sondern setzt Kenntnisse in Java voraus. Es kann Lehrveranstaltungen zum Thema Betriebssysteme, Programmieren in Java und Praktische Informatik begleiten.



Auf CD-ROM:

• alle Java-Beispielprogramme aus dem Buch

• verschiedene Visualisierungen als eigenständige Java-Programme und meistens auch als Java-Applets

• zur Erstellung und zum Ablauf von Java-Programmen benötigter Compiler aus dem Java Development Kit JDK

• Anleitung mit Beispielen zur Entwicklung eigener Visualisierungen und Animationen

• ein Editor und Simulator für Petri-Netze mit zahlreichen vorgegebenen Petri-Netzen zu den wesentlichen Lehrinhalten des Buchs

• Übungsaufgaben mit Musterlösungen



Dr. Rainer Oechsle ist Professor für Rechnernetze und Verteilte Systeme im Studiengang Angewandte Informatik an der Fachhochschule Trier.
Inhaltsverzeichnis
1 EINLEITUNG

1.1 Parallelität und Nebenläufigkeit
1.2 Programme, Prozesse und Threads
1.3 Historische Entwicklung

2 SYNCHRONISATION VON JAVA-THREADS

2.1 Erzeugung und Start von Java-Threads
2.1.1 Ableiten der Klasse Thread
2.1.2 Implementieren der Schnittstelle Runnable
2.1.3 Einige Beispiele
2.2 Probleme beim Zugriff auf gemeinsam genutzte Objekte
2.2.1 Erster Lösungsversuch
2.2.2 Zweiter Lösungsversuch
2.3 synchronized-Methoden und synchronized-Blöcke
2.4 Ende von Java-Threads
2.4.1 Asynchrone Beauftragung mit Abfragen der Ergebnisse
2.4.2 Zwangsweises Beenden von Threads
2.4.3 Asynchrone Beauftragung mit Rückruf (Callback)
2.5 wait - notify
2.5.1 Erster Lösungsversuch
2.5.2 Zweiter Lösungsversuch
2.5.3 Korrekte Lösung mit wait und notify
2.6 wait-notifyAll
2.6.1 Erzeuger-Verbraucher-Problem mit wait - notify
2.6.2 Erzeuger-Verbraucher-Problem mit wait-notifyAll
2.7 Zusammenfassung

3 "KLASSISCHE" SYNCHRONISATIONSKONZEPTE UND -PROBLEME

3.1 Semaphore
3.1.1 Einfache Semaphore
3.1.2 Nutzung einfacher Semaphore für den gegenseitigen Ausschluss
3.1.3 Nutzung einfacher Semaphore zur Herstellung von vorgegebenen Ausführungsreihenfolgen
3.1.4 Additive Semaphore
3.1.5 Semaphorgruppen
3.2 Message Queues
3.2.1 Verallgemeinerung des Erzeuger-Verbraucher-Problems
3.2.2 Übertragung des erweiterten Erzeuger-Verbraucher-Problems auf Message Queues
3.3 Pipes
3.4 Philosophen-Problem
3.4.1 Lösung mit synchronized-wait - notifyAH
3.4.2 Naive Lösung mit einfachen Semaphoren
3.4.3 Einschränkende Lösung mit gegenseitigem Ausschluss
3.4.4 Gute Lösung mit einfachen Semaphoren
3.4.5 Lösung mit Semaphorgruppen
3.5 Leser-Schreiber-Problem
3.5.1 Lösung mit synchronized - wait - notifyAll
3.5.3 Lösung mit additiven Semaphoren
3.6 Typische Form von synchronized-Methoden
3.7 Modellierung mit Petri-Nutzen
3.7.1 Petri-Netze
3.7.2 Modellierung der Nutzung von synchronized-Methoden
3.7.3 Modellierung von wait, notify und notifyAH

4 VERKLEMMUNGEN

4.1 Ursachen für Verklemmungen
4.1.1 Beispiele für Verklemmungen mit synchronized
4.1.2 Beispiele für Verklemmungen mit Semaphoren
4.1.3 Bedingungen für das Eintreten von Verklemmungen
4.2 Vermeidung von Verklemmungen
4.2.1 Anforderung von Betriebsmitteln „auf einen Schlag"
4.2.2 Anforderung von Betriebsmitteln gemäß einer vorgegebenen Ordnung
4.2.3 Anforderung von Betriebsmitteln mit Bedarfsanalyse

5 VERSCHIEDENES

5.1 "Schlechte" Thread-Methoden
5.2 Prioritäten von Threads
5.3 Vordergrund-und Hintergrund-Threads
5.4 Thread-Gruppen
5.5 Threads und grafische Benutzeroberflächen

LITERATUR

SACHWORTVERZEICHNIS