Review: Java 7 Concurrency Cookbook

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:

  1. So erstellen, unterbrechen, schlafen und setzen Sie einen Thread fort.

  2. So programmieren Sie einen Daemon-Thread.

  3. So verarbeiten Sie Thread-Ausnahmen.

  4. 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:

  1. Verwendung des Schlüsselwortssynchronized zum Synchronisieren einer Methode.

  2. Verwendung derLock-Schnittstelle und ihrer Implementierungen zum Synchronisieren eines Codeblocks.

  3. So führen Sie einzelne / mehrere Bedingungen in synchronisiertem Code mitwait(),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:

  1. Semaphores - Ein Zähler, der den Zugriff auf eine oder mehrere gemeinsam genutzte Ressourcen steuert.

  2. CountDownLatch - Ermöglicht einem Thread, auf den Abschluss mehrerer Operationen zu warten.

  3. CyclicBarrier - Ermöglicht die Synchronisation mehrerer Threads an einem gemeinsamen Punkt.

  4. Phaser - Steuert die Ausführung gleichzeitiger Aufgaben, die in Phasen unterteilt sind.

  5. 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:

  1. So erstellen Sie einen Thread-Executor

  2. So führen Sie eine Aufgabe nach einer Verzögerung aus.

  3. So führen Sie eine Aufgabe regelmäßig aus.

  4. So steuern Sie das Beenden oder Abbrechen von Aufgaben.

Kapitel 5: Fork / Join Framework

Fähigkeiten werden erlernt:

  1. Was ist Java 7 Fork / Join Framework und ein einfaches Beispiel für eine Hallo-Welt?

  2. So verbinden Sie die Ergebnisse der geteilten Aufgaben.

  3. 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:

  1. Was sind blockierende und nicht blockierende Sammlungen?

  2. Beispiele für die Verwendung von blockierenden und nicht blockierenden Thread-sicheren Listen.

  3. ConcurrentNavigableMap Beispiel.

  4. So generieren Sie gleichzeitige Zufallszahlen mitThreadLocalRandom.

  5. 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:

  1. Implementieren einer prioritätsbasiertenExecutor-Klasse

  2. Verwendung vonThreadFactory.

  3. Anpassen von Aufgaben, die in einem geplanten Thread-Pool und im Fork / Join-Framework ausgeführt werden.

  4. So implementieren Sie eine benutzerdefinierteLock-Klasse.

  5. 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:

  1. Überwachen des Frameworks vonLock,Phaser,Executor und des Fork / Join-Pools.

  2. So konfigurieren Sie Eclipse und NetBeans für das Debuggen von Parallelitätscode.

  3. 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.