Nebenläufige Programmierung mit Threads

tutego
In Dortmund

1001-2000
Möchten Sie den Bildungsanbieter lieber direkt anrufen?
(0) 3... Mehr ansehen
Vergleichen Sie diesen Kurs mit ähnlichen Kursen
Mehr ansehen

Wichtige informationen

  • Intensivseminar berufsbegleitend
  • Mittelstufe
  • Inhouse
  • Dortmund
  • Dauer:
    2 Tage
  • Wann:
    Freie Auswahl
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.

Wichtige informationen
Veranstaltungsort(e)

Wo und wann

Beginn Lage
Freie Auswahl
Dortmund
Nordrhein-Westfalen, NRW, Deutschland
Plan 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.

Vergleichen Sie diesen Kurs mit ähnlichen Kursen
Mehr ansehen