Java Threads ist ein Grundlagenkurs. Über zwei Wochen erhalten Sie in kurzen Videos und Übungen aufgeteilte Lektionen, konzipiert von Dr. Heinz Kabutz. Angefangen bei den Basics zu korrektem Thread Code über fortgeschrittene Konstrukte bis hin zu Race Conditions und Deadlocks.
Jeder Abschnitt beinhaltet Übungsaufgaben, die Ihre Fähigkeiten als Java-Programmierer verbessern. Einige dieser Übungen (“schreibe einen ThreadPool”) sind recht sportlich und haben bereits Hunderte von Java-Programmierern ins Schwitzen gebracht. Bei der Lösung dieser Probleme lernen Sie aber, wie Inter-Thread-Kommunikation funktioniert. Sie lernen, wie Sie Ihre Klassen thread-safe halten können sowie auch einiges über Thread-Zustände. Für jede Übung gibt es eine detaillierte Anleitung.
Im ersten Kapitel erklärt Dr. Heinz Kabutz, warum Java-Threads bedeutsam sind und wie Sie diese in diesem Kurs meistern.
In dem ersten Video wird der Aufbau des Kurses und die Bedeutung von Java Threads erläutert.
– Weshalb benutzen wir Threads?
– Threading-Modelle
– Paralleles Rechnen
– Nebenläufiges Rechnen
– Java-Speichermodell
– Wie wir neue Threads erzeugen, u.a. mit Runnable
– Thread Groups und was könnnen wir damit erreichen?
– Wie multi-threading mit Shared Memory umgeht
– Synchronized
– Threads-Zustände
– Kommunikation zwischen Threads
– Proritäten
– java util Timer
– Deamon Threads
– Übungen
– Sabotierte Klingel
– Abgelenkter Unterwasserjäger
– Überbevorratete Kurzwarengeschäft
– Toter Winkel
– Leaked memo
– Korrupter Politiker
– Mikromanagement
– Autofahren auf Kreta
– Plötzlicher Reichtum
– Ungegessener Laugenfisch
– Übungen
– Executors
– Executors Services
– Callable und Future
– Executor-Beispiel
– Executor Fassade
– CompletionService
– CountDownLatch
– Semaphore
– BockingQueues mit ArrayBockingQueues, LinkedBockingQueues, PriorityBockingQueues, DelayQueues und SynchronousQueues
– Unerfasste Exceptions
– ThreadLocal mit Code-Beispiel
-Threads mit stop() anhalten
– Shutdown haken
– Aufgaben
– Race Conditions mit Beispiel, „Race Condition“ mit synchronized, Atomics, LongAdder und Local Confinement und Merge ausgebessert
– LogAdder
– Lazy Initialization „Race Condition“
– Wie man „Race Condition“ entdeckt
– „Starvation“, Beispiel mit Finalizer, ReadWriteLock “Starvation”, „Starvation” in Thread Dumps, 5.2.2. Wie man „Starvation” findet
– Fairness mit SynchronousQueue Fairness
– „Deadlock” mit HappyLocker-Beispiel, Wie finden wir “Deadlocks”?, Thread Dumps analysieren
– „Livelock”, „Livelock” mit wait() und Selbst-Interrupt
– Aufgaben
Im letzten Kapitel erhalten Sie nochmal alles auf einen Blick in der großen Zusammenfassung.
Wir verwenden für diesen Kurs OpenJDK 11 und nutzen dabei die Vorteile der neuen var-Syntax. Aber keine Sorge: auch Programmierer, die bisher nur mit Java 6 oder 7 gearbeitet haben, werden folgen können.
Leistungsfähiges und stabiles Internet mit einem aktuellen Browser
Nach zwei Wochen endet unser Camp. Im Anschluss erhalten Sie ein Teilnahmezertifikat und können jederzeit weiterhin auf die Slides des Trainers zugreifen.
Die Inhalte dieses Kurses haben wir sehr genau ausgewählt. Unsere Absicht war es, einen kurzen Kurs zu erstellen, in dem Ihnen genügend Kenntnise vermittelt werden, um Ihnen bei Ihrer täglichen Arbeit zu helfen. Fragen im Vorstellungsgespräch zum Thema Nebenläufigkeit werden danach ein Klacks sein!
Ja, das ist kein Problem. Jede Woche kommen neue Videos hinzu, Sie können aber auch alle Videos und Aufgaben an einem Stück bearbeiten.
Jeder Abschnitt beinhaltet Übungsaufgaben und auch Musterlösungen. Wenn Sie bei einer Aufgabe stecken bleiben, dann schreiben Sie doch gerne in den Chat.