Rückblick: Java 7 Concurrency Cookbook
DieJava
7 Concurrency Cookbook mit über 60 Beispielen zeigen Ihnen, wie Sie Multithread-Programmierung in Java durchführen. It shows varies threading topics from beginner level to advanced level, including thread management like create, interrupt and monitor thread, using Java 5 Executor
frameworks to run or schedule threads, and the latest Java 7 fork/Join
Frameworks to distribute threads.
Mein Favorit ist Kapitel 3, das 5 Beispiele für gängige gleichzeitige Mechanismen oder Muster zeigt - „Semaphores“, „CountDownLatch“, „CyclicBarrier“, „Phaser“ und „Exchanger “und wie diese Mechanismen das bestehende Threading-Problem lösen. Darüber hinaus überrascht es mich am Ende des Kapitels, indem es zeigt, wie Java-Code gleichzeitig in Eclipse und NetBean getestet wird.
Im folgenden Abschnitt erfahren Sie, was Sie aus diesem Buch lernen werden.
Kapitel 1: Thread-Verwaltung
Hallo Weltkapitel mit vielen nützlichen Beispielen, die Ihnen die Grundlagen der Thread-Verwaltung zeigen.
Fähigkeiten werden erlernt:
-
So erstellen, unterbrechen, schlafen und setzen Sie einen Thread fort.
-
So programmieren Sie einen Daemon-Thread.
-
So verarbeiten Sie Thread-Ausnahmen.
-
So gruppieren Sie Threads in einer Gruppe.
Kapitel 2: Grundlegende Thread-Synchronisation
Thread-Synchronisation, um zu steuern, wie mehrere Threads dieselben Daten, Dateien oder Datenbanken (gemeinsam genutzte Ressourcen) lesen und schreiben.
Fähigkeiten werden erlernt:
-
Verwendung des Schlüsselworts
synchronized
zum Synchronisieren einer Methode. -
Verwendung der
Lock
-Schnittstelle und ihrer Implementierungen zum Synchronisieren eines Codeblocks. -
So führen Sie einzelne / mehrere Bedingungen in synchronisiertem Code mit
wait()
,notify()
undnotifyAll()
aus.
Kapitel 3: Dienstprogramme zur Thread-Synchronisierung
Beispiele, die Ihnen die fünf gängigen gleichzeitigen Mechanismen oder Muster zum Synchronisieren mehrerer Threads und das zu lösende Problem zeigen.
Fähigkeiten werden erlernt:
-
Semaphores - Ein Zähler, der den Zugriff auf eine oder mehrere gemeinsam genutzte Ressourcen steuert.
-
CountDownLatch - Ermöglicht einem Thread, auf den Abschluss mehrerer Operationen zu warten.
-
CyclicBarrier - Ermöglicht die Synchronisation mehrerer Threads an einem gemeinsamen Punkt.
-
Phaser - Steuert die Ausführung gleichzeitiger Aufgaben, die in Phasen unterteilt sind.
-
Exchanger - Bietet einen Punkt für den Datenaustausch zwischen zwei Threads.
Kapitel 4: Thread Executors
So arbeiten Sie mit Java 5, Executor-Frameworks -Executor
,ThreadPoolExecutor
usw. Es ist wie bei einem Scheduler, einen einzelnen oder mehrere Threads zum angegebenen Zeitpunkt oder Intervall auszuführen.
Fähigkeiten werden erlernt:
-
So erstellen Sie einen Thread-Executor
-
So führen Sie eine Aufgabe nach einer Verzögerung aus.
-
So führen Sie eine Aufgabe regelmäßig aus.
-
So steuern Sie das Beenden oder Abbrechen von Aufgaben.
Kapitel 5: Fork / Join Framework
Fähigkeiten werden erlernt:
-
Was ist Java 7 Fork / Join Framework und ein einfaches Beispiel für eine Hallo-Welt?
-
So verbinden Sie die Ergebnisse der geteilten Aufgaben.
-
So brechen Sie eine Aufgabe ab.
Kapitel 6: Gleichzeitige Sammlungen
Stellen Sie Java-Sammlungen vor, die bei der gleichzeitigen Programmierung verwendet werden.
Fähigkeiten werden erlernt:
-
Was sind blockierende und nicht blockierende Sammlungen?
-
Beispiele für die Verwendung von blockierenden und nicht blockierenden Thread-sicheren Listen.
-
ConcurrentNavigableMap
Beispiel. -
So generieren Sie gleichzeitige Zufallszahlen mit
ThreadLocalRandom
. -
Verwendung von atomaren Variablen - z. B.
AtomicLong
und atomaren Arrays - z. B.AtomicIntegerArray
.
Kapitel 7: Anpassen von Parallelitätsklassen
In diesem Kapitel erfahren Sie, wie Sie vorhandene Parallelitätsklassen an Ihre Anforderungen anpassen können. Oft brauchen Sie das nicht, aber es ist gut zu wissen.
Fähigkeiten werden erlernt:
-
Implementieren einer prioritätsbasierten
Executor
-Klasse -
Verwendung von
ThreadFactory
. -
Anpassen von Aufgaben, die in einem geplanten Thread-Pool und im Fork / Join-Framework ausgeführt werden.
-
So implementieren Sie eine benutzerdefinierte
Lock
-Klasse. -
So implementieren Sie Ihr eigenes Atomobjekt.
Kapitel 8: Testen gleichzeitiger Anwendungen
In diesem Kapitel erfahren Sie, wie Sie in Ihrem gleichzeitigen Programm testen.
Fähigkeiten werden erlernt:
-
Überwachen des Frameworks von
Lock
,Phaser
,Executor
und des Fork / Join-Pools. -
So konfigurieren Sie Eclipse und NetBeans für das Debuggen von Parallelitätscode.
-
So analysieren Sie gleichzeitigen Code mitFindBugs
Fazit
Dieses Buch enthält viele leicht zu verfolgende Beispiele, die am Ende jedes Beispiels ausführlich erläutert werden, mit Ausnahme von Kapitel 6 und Kapitel 7, für deren Verständnis einige Jahre Threading-Hintergrund erforderlich waren. Für Anfänger, die das Threading in Java lernen möchten, gilt Folgendes: Concurrency Cookbook] “ist das beste Buch zum Lernen. Für erfahrene Entwickler können Sie dies auch als vollständige Referenz für "Java Concurrency" behandeln.
Was ist, wenn man es mit den klassischenJava Concurrency in Practicevergleicht? I think both books are targeted for different developer level. IMHO, the classic “Java Concurrency in Practice” is for advanced level, its snippet code is followed by a few pages of explanations is great, but not suitable for anyone. And this Java 7 Concurrency Cookbook is for beginner and immediate level, the example is easy to understand and ready to modify for your project use.
Note
Dieses Java 7 Concurrency Cookbook kann online überamazon.com oderpacktpub.com gekauft werden.