Nebenläufige Programmierung mit Threads

Empfohlene Schulungsdauer: 2 Tage, insgesamt 12 Zeitstunden

Kursziele

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 in Java 5.0 eingeführten neuen 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.

Zielgruppe

Software-Entwickler

Voraussetzungen

Der Kurs ›Java Grundlagen‹, ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.

Seminarinhalte

[LOGO]
  • 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
    - Queue, Blocking-Queue, 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
  • Testen
    - Umgang mit dem Nichtdeterminismus
    - JUnit und junit.extensions.RepeatedTest
    - JunitPerf und com.clarkware.junitperf.LoadTest

Seminarunterlagen

Deutschsprachige Unterlagen (Kopien der Folien), Zertifikat.

Software

Als Laufzeitumgebung wird standardmäßig Java SE 6 von Sun zusammen mit der Entwicklungsumgebung Eclipse 3.5 eingesetzt (Paket ›Eclipse IDE for Java EE Developers‹). Auf Wunsch auch NetBeans 6 oder andere Entwicklungsumgebungen (IntelliJ IDEA, Oracle JDeveloper).

Schlagwörter

Unternehmen

  • Sun Microsystems

[Addthis] [Google Bookmarks] [Yahoo! Bookmarks] [Delicius] [Mister Wong]

tutego™ bietet Ihnen viele weitere Schulungen. Unsere Kategorien: Java, .NET (C#, VB.NET, ASP.NET, ...), Programmiersprachen (iPhone, PHP, ...), Softwaredesign (UML, Pattern, ...), XML (XSLT, Schema), SAP (ABAP, ...), Server Administration (SVN, Apache, ...), Datenbanken (Oracle, MySQL, ...), Web-Programmierung (JavaScript, jQuery, Flex), Microsoft Office, AutoCAD, Sage KHK, Lotus Notes/Domino.

[Nach oben]