Threads beherrschen
“Wie funktionieren Java Threads?” - ein Grundlagenkurs
„Lasst uns zum Aufwärmen einen Threadpool schreiben.“ Panik! Will der Heinz uns veräppeln?
„Threads beherrschen“ ist ein eintägiger Intensivkurs, der bei den Thread-Basics beginnt. Danach beschäftigten wir uns mit Regeln für korrekten Thread Code. Im nächsten Schritt gehen wir dann zu fortgeschrittenen Konstrukten, die das Threading wesentlich einfacher machen. Zum Schluss werden wir uns noch mit Race Conditions und Deadlocks beschäftigen.
Jeder Abschnitt beinhaltet Übungsaufgaben, die deine 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 wir aber, wie Inter-Thread-Kommunikation funktioniert. Wir lernen, wie wir unsere Klassen thread-safe halten können. Wir lernen auch einiges über Thread-Zustände. Für jede Übung gibt es eine detaillierte Anleitung. Darüber hinaus können die Teilnehmer die gelösten Übungen zur Überprüfung an [email protected] schicken. Das direkte Feedback des Trainers hilft immens um das Erlernte zu vertiefen und zu verfestigen.
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.
Die Inhalte dieses Kurses haben wir sehr genau ausgewählt. Unsere Absicht war es, einen kurzen Kurs zu erstellen, der dir genug beibringt, um dir bei deiner täglichen Arbeit zu helfen. Fragen im Vorstellungsgespräch zum Thema Nebenläufigkeit werden danach ein Klacks sein! „Threads beherrschen“ ist ein Einführungskurs zum Thema “Concurrency”. Solltest du danach weiter in die Tiefe gehen wollen, schlagen wir dir den Kurs „Extreme Java - Concurrency Performance“ vor.
This course is also available in English.
Your Instructor
Heinz Kabutz is the author of The Java Specialists’ Newsletter, a publication enjoyed by tens of thousands of Java experts in over 150 countries. He has been a Java Champion since 2005.
Course Curriculum
-
Preview2. Thread Grundlagen (0:58)
-
Preview2.1. Weshalb benutzen wir Threads? (0:41)
-
Preview2.2. Threading Modelle (3:09)
-
Preview2.3. Paralleles Rechnen (2:02)
-
Preview2.4. Nebenläufiges Rechnen (1:38)
-
Preview2.5. Java Speichermodell (JSR 133) (2:27)
-
Preview2.6. Wie wir neue Threads erzeugen (3:49)
-
Preview2.6.1. Neuer Thread mit Runnable (0:54)
-
Start2.7. ThreadGroups (1:44)
-
Start2.7.1. Was können wir mit ThreadGroups erreichen? (2:45)
-
Start2.8. Wie multi-threading mit Shared Memory umgeht (4:21)
-
Start2.9. Synchronized (8:55)
-
Start2.10. Thread Zustände (3:56)
-
Start2.11. Kommunikation zwischen Threads (7:39)
-
Start2.12. Prioritäten (1:33)
-
Start2.13. java.util.Timer (2:37)
-
Start2.14. Daemon Threads (2:10)
-
Start2.X. Aufgabe 2.1 (2:35)
-
Start2.X. Aufgabe 2.1 Musterlösung (10:51)
-
Start2.X. Aufgabe 2.2 (0:54)
-
Start2.X. Aufgabe 2.2 Musterlösung (2:43)
-
Start3. Die Geheimnisse der Threads (2:18)
-
Start3.1. Sabotierte Klingel (13:43)
-
Start3.2. Abgelenkter Unterwasserjäger (2:47)
-
Start3.3. Überbevorrates Kurzwarengeschäft (6:13)
-
Start3.4. Toter Winkel (5:35)
-
Start3.5. Leaked Memo (4:16)
-
Start3.6. Korrupter Politiker (1:17)
-
Start3.7. Mikromanager (3:13)
-
Start3.8. Autofahren auf Kreta (10:12)
-
Start3.9. Plötzlicher Reichtum (3:30)
-
Start3.10. Ungegessener Laugenfisch (3:48)
-
Start3.X Aufgabe 3.1 (0:33)
-
Start3.X Aufgabe 3.1 Musterlösung (2:51)
-
Start3.X Aufgabe 3.2 (0:47)
-
Start3.X Aufgabe 3.3 Musterlösung (1:28)
-
Start3.X Aufgabe 3.3 (0:25)
-
Start3.X Aufgabe 3.2 Musterlösung (6:05)