20 Jahre Erfahrung FreeCall 0800 tutegos

Nebenläufige Programmierung mit Threads

[LOGO]

Java ermöglicht seit der Version 1.0 das Programmieren von Multithreaded Applikationen. Das Kompaktseminar wiederholt zunächst die Grundlagen paralleler Anwendungen mit den Typen Thread und Runnable. Im Hauptteil lernen die Teilnehmer die Klassen und Schnittstellen aus dem Paket java.util.concurrent und Unterpaketen kennen, mit denen Thread-Koordination nunmehr komfortabel und effektiv möglich ist. Im Ausblick führt das Seminar an Beispielen das Fork/Join-Framework vor und parallele Streams vor.

Inhalte des Seminars

Wiederholung zentraler Begriffe

  • Notwendigkeit von nebenläufigen Programmen (Mehrkernprozessoren)
  • Zustandsänderungen, Immutability
  • Erzeugen von Threads
  • Die Schnittstelle Runnable
  • Lebenszyklus von Threads, Starten und Stoppen, Interrupt
  • Auf das Ende mit join warten
  • Dämonen
  • Thread-Scheduling und Prioritäten
  • Exceptions: Auffangen von Ausnahmen
  • Race Conditions
  • Mit synchronized Methoden oder kritische Abschnitte schützen
  • Reentrante synchronisierte Blöcke
  • Synchronisierung statischer Methoden und Objektmethoden
  • Verhungern (Starvation)
  • Deadlocks, Deadlock Detection Utility der JVM und von Eclipse
  • wait und notify, notifyAll sowie Zeitfenster und Interrupts
  • ThreadLocal
  • Threads und assoziierte ClassLoader

Das Paket java.util.concurrent

  • Entstehung des Paketes durch Doug Lea
  • Nutzung für Java-Versionen vor 5.0
  • java.util.concurrent.atomic

Lock und ReentrantLock

  • Das Paket java.util.concurrent.locks
  • Die Schnittstelle Lock für explizites Locking
  • Lock-Implementierung ReentrantLock
  • lock, unlock, finally
  • Die Aufzählung TimeUnit

Executor

  • Die Schnittstelle Executor und ExecutorService
  • Thread-Pools und Scheduled Threads
  • ThreadPoolExecutor, RejectedExecutionHandler

Scheduling

  • java.util.Timer und javax.swing.Timer
  • ScheduledThreadPoolExecutor
  • Scheduling im Großen: Quartz

Runnable und Callable

  • Threads mit Ergebnissen
  • Callable und die Nutzung
  • Spätere Ergebnisse mit Future
  • CompletionStage und CompletableFuture

Komfortable Thread-Koordination

  • Schnittstellen Queue, BlockingQueue, TransferQueue
  • Implementierungen LinkedBlockingQueue, DelayQueue, PriorityBlockingQueue
  • CyclicBarrier, Vergleich mit join
  • CountDownLatch, Exchanger, Phaser

Threads in der Java-Bibliothek

  • Thread-Kommunikation mit Piped-Stream, PipedReader, PipedWriter
  • Paralleler Zugriff auf Datenstrukturen Vector vs. ArrayList
  • Collections.synchronizedXXX, Iteratoren
  • Lock-Free Datenstrukturen, ConcurrentHashMap, ConcurrentLinkedQueue
  • CopyOnWriteArrayList, CopyOnWriteArraySet
  • Threads in Swings, der AWT-Event-Dispatching Thread

Stream-API

  • Lambda-Ausdrücke
  • Stream-API
  • Intermediäre und terminale Operationen
  • Parallele versus sequenzielle Abarbeitung

Ausblick

  • Testen von multithreaded Code
  • Theads in Containern (Java EE, Spring, Servlet-Container)
  • Reactive Programming und Flow-API

Termine / Kontakt

Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.

Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.

Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).

Die Fakten

  • Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
  • Zielgruppe: Software-Entwickler
  • Vorkenntnisse: Der Kurs ›Java Grundlagen‹, ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.
  • Schulungsunterlagen: Deutschsprachige Unterlagen (Kopien der Folien), Zertifikat
  • Seminar-Software: Java 21 ist die Standardversion, die in Verbindung mit der IntelliJ IDEA (Community-Edition) verwendet wird. Auf Wunsch auch die Eclipse IDE (Paket ›Eclipse IDE for Enterprise Java Developers‹) oder andere Entwicklungsumgebungen (NetBeans, Oracle JDeveloper) und JDK 8.

Weiterführende Seminare

Eclipse IDE, Oberflächen mit Swing und JFC, <<<JAVA5>>>, Datenbankanbindung über JDBC, Java und XML, JavaServer Pages (JSP) und Servlets, Java Platform, Enterprise Edition (Java EE), EJB und JPA, Spring-Framework, OR-Mapping mit Hibernate und JPA, Oracle Certified Professional Java Programmer (OCPJP), Refactoring, Design Pattern (Entwurfsmuster) in Java, Effektiv Java programmieren

Verweise

Alle Kategorien

Was Teilnehmer sagen