Nebenläufige Programmierung mit Threads

Seminar

In Dortmund

1001-2000 €

Beschreibung

  • Kursart

    Intensivseminar berufsbegleitend

  • Niveau

    Mittelstufe

  • Methodik

    Inhouse

  • Ort

    Dortmund

  • Dauer

    2 Tage

  • Beginn

    nach Wahl

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.

Standorte und Zeitplan

Lage

Beginn

Dortmund (Nordrhein-Westfalen, NRW)
Karte ansehen

Beginn

nach WahlAnmeldung möglich

Hinweise zu diesem Kurs

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

Fragen & Antworten

Ihre Frage hinzufügen

Unsere Berater und andere Nutzer werden Ihnen antworten können

Wer möchten Sie Ihre Frage beantworten?

Geben Sie Ihre Kontaktdaten ein, um eine Antwort zu erhalten

Es werden nur Ihr Name und Ihre Frage veröffentlicht.

Meinungen

Themen

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

Inhalte

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

Nebenläufige Programmierung mit Threads

1001-2000 €