Nebenläufige Programmierung mit Threads

tutego
In Dortmund

1001-2000 €
Möchten Sie den Bildungsanbieter lieber direkt anrufen?
(0) 3... Mehr ansehen

Wichtige informationen

Tipologie Intensivseminar berufsbegleitend
Niveau Mittelstufe
Methodologie Inhouse
Beginn Dortmund
Dauer 2 Tage
Beginn nach Wahl
  • Intensivseminar berufsbegleitend
  • Mittelstufe
  • Inhouse
  • Dortmund
  • Dauer:
    2 Tage
  • Beginn:
    nach Wahl
Beschreibung

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, Runnable sowie dem Konstrukt synchronized. 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, was Teil von Java 7 ist. Parallele Streams aus Java 8 sind Teil vom Ausblick.

Veranstaltungsort(e)

Wo und wann

Beginn Lage
nach Wahl
Dortmund
Nordrhein-Westfalen, NRW, Deutschland
Karte ansehen
Beginn nach Wahl
Lage
Dortmund
Nordrhein-Westfalen, NRW, Deutschland
Karte ansehen

Häufig gestellte Fragen

· Voraussetzungen

Der Kurs ›[(Java Grundlagen)]‹, ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.

Was lernen Sie in diesem Kurs?

Java
Programmierung

Dozenten

tutego Dozent
tutego Dozent
IT-Programmierung

auf Anfrage Unsere Dozenten haben jahrelange praktische Erfahrungen in Ihren Fachgebieten durch Projektarbeit. Ihr Referent für das Seminar kann sich durch seine langjährige Erfahrung als Dozent und detaillierten Kenntnisse im gewünschten Bereich schnell auf die Bedürfnisse Ihrer Mitarbeiter einstellen.

Themenkreis

* Wiederholung zentraler Begriffe
  • Notwendigkeit von nebenläufigen Programmen (Mehrkernprozessoren)
  • 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@@

* Komfortable Thread-Koordination
  • Schnittstellen @@Queue@@, @@BlockingQueue@@, @@TransferQueue@@
  • Implementierungen @@LinkedBlockingQueue@@, @@DelayQueue@@, @@PriorityBlockingQueue@@
  • @@CyclicBarrier@@, Vergleich mit @@join@@
  • @@Exchanger@@
  • @@Latch@@

* Anwendung von 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

* Java 8 Streams
  • Lambda-Ausdrücke
  • Stream-API
  • Parallele versus sequenzielle Abarbeitung

* Testen
  • Umgang mit dem Nichtdeterminismus
  • JUnit und @@junit.extensions.RepeatedTest@@
  • JunitPerf und com.clarkware.junitperf.LoadTest

Zusätzliche Informationen

Profitieren Sie von unserem Konzept der kundenangepassten Inhouse-Seminare. Die Kursinhalte werden individuell abgesprochen und beinhalten ausgewählte Themen unserer Seminarbeschreibungen. So berücksichtigt die Weiterbildung Ihre vorhandene Infrastruktur und ist immer auf die Ziele Ihres Unternehmens und speziellen Erfahrungen und Wünsche der Mitarbeiter ausgerichtet. Die Weiterbildungskosten sind unabhängig von der Anzahl der Teilnehmer. tutego stellt deutschsprachige Schulungsunterlagen zur Verfügung (in der Regel als PDF zur Vervielfältigung) und jeder Teilnehmer erhält mit Abschluss der Schulung eine Teilnahmebestätigung. Für praktische Übungen stellt der Auftraggeber einen Kursraum mit Infrastruktur (Arbeitsplätze/Laptops und Beamer) bereit.

User, die sich für diesen Kurs interessiert haben, interessierten sich auch für...
Mehr ansehen