Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Threads beherrschen
1. Threads beherrschen
Copyright Notice
1. Threads beherrschen (3:56)
1.1. Herzlich Willkommen (3:46)
Folien
Aufgaben
2. Thread Grundlagen
2. Thread Grundlagen (0:58)
2.1. Weshalb benutzen wir Threads? (0:41)
2.2. Threading Modelle (3:09)
2.3. Paralleles Rechnen (2:02)
2.4. Nebenläufiges Rechnen (1:38)
2.5. Java Speichermodell (JSR 133) (2:27)
2.6. Wie wir neue Threads erzeugen (3:49)
2.6.1. Neuer Thread mit Runnable (0:54)
2.7. ThreadGroups (1:44)
2.7.1. Was können wir mit ThreadGroups erreichen? (2:45)
2.8. Wie multi-threading mit Shared Memory umgeht (4:21)
2.9. Synchronized (8:55)
2.10. Thread Zustände (3:56)
2.11. Kommunikation zwischen Threads (7:39)
2.12. Prioritäten (1:33)
2.13. java.util.Timer (2:37)
2.14. Daemon Threads (2:10)
2.X. Aufgabe 2.1 (2:35)
2.X. Aufgabe 2.1 Musterlösung (10:51)
2.X. Aufgabe 2.2 (0:54)
2.X. Aufgabe 2.2 Musterlösung (2:43)
3. Die Geheimnisse der Threads
3. Die Geheimnisse der Threads (2:18)
3.1. Sabotierte Klingel (13:43)
3.2. Abgelenkter Unterwasserjäger (2:47)
3.3. Überbevorrates Kurzwarengeschäft (6:13)
3.4. Toter Winkel (5:35)
3.5. Leaked Memo (4:16)
3.6. Korrupter Politiker (1:17)
3.7. Mikromanager (3:13)
3.8. Autofahren auf Kreta (10:12)
3.9. Plötzlicher Reichtum (3:30)
3.10. Ungegessener Laugenfisch (3:48)
3.X Aufgabe 3.1 (0:33)
3.X Aufgabe 3.1 Musterlösung (2:51)
3.X Aufgabe 3.2 (0:47)
3.X Aufgabe 3.3 Musterlösung (1:28)
3.X Aufgabe 3.3 (0:25)
3.X Aufgabe 3.2 Musterlösung (6:05)
4. Angewandtes Threading
4. Angewandtes Threading (0:08)
4.1. Executors (2:20)
4.1.1. ExecutorService (3:05)
4.1.2. Callable und Future (0:31)
4.1.3. Executor Beispiel (5:01)
4.1.4. Executors Fassade (4:32)
4.2. CompletionService (2:33)
4.3. CountDownLatch (2:18)
4.4. Semaphore (5:01)
4.5. BlockingQueues (1:52)
4.5.1. ArrayBlockingQueue (2:54)
4.5.2. LinkedBlockingQueue (1:39)
4.5.3. PriorityBlockingQueue (2:07)
4.5.4. DelayQueue (1:50)
4.5.5. SynchronousQueue (0:37)
4.6. Unerfasste Exceptions (2:26)
4.7. ThreadLocal (3:33)
4.7.1. ThreadLocal Code Beispiel (9:21)
4.8. Threads mit stop() anhalten (2:10)
4.9. Shutdown haken (1:46)
4.X. Aufgabe 4.1 (0:37)
4.X. Aufgabe 4.1 Musterlösung (3:47)
4.X. Aufgabe 4.2 (0:21)
4.X. Aufgabe 4.2 Musterlösung (2:15)
4.X. Aufgabe 4.3 (1:15)
4.X. Aufgabe 4.3 Musterlösung (2:33)
4.X. Aufgabe 4.4 (2:05)
4.X. Aufgabe 4.4 Musterlösung (7:04)
5. Probleme mit Threads
5. Probleme mit Threads (0:23)
5.1. “Race Conditions” (1:53)
5.1.1. Beispiel einer “Race Condition” (2:09)
5.1.2. “Race Condition” mit synchronized ausgebessert (3:53)
5.1.3. “Race Condition” mit Atomics ausgebessert (5:29)
5.1.4. “Race Condition” mit LongAdder ausgebessert (0:55)
5.1.5. “Race Condition” mit Local Confinement und Merge ausgebessert (4:18)
5.1.6. LongAdder (0:38)
5.1.7. Lazy Initialization “Race Condition” (4:27)
5.1.8. Wie man “Race Conditions” entdeckt (1:48)
5.2. “Starvation” (2:20)
5.2. “Starvation” Beispiel mit Finalizer (11:20)
5.2.1. ReadWriteLock “Starvation” (0:59)
5.2.3. “Starvation” in Thread Dumps (2:41)
5.2.2. Wie man “Starvation” findet (1:23)
5.3. Fairness (2:22)
5.3.1. SynchronousQueue Fairness (2:54)
5.4. “Deadlock” (2:11)
5.4.1. HappyLocker Beispiel (1:49)
5.4.2. Wie finden wir “Deadlocks”? (2:20)
5.4.3. Thread Dumps analysieren (0:21)
5.5. “Livelock” (0:42)
5.5.1. “Livelock” mit wait() und Selbst-Interrupt (2:29)
5.X. Aufgabe 5.1 (0:31)
5.X. Aufgabe 5.1 Musterlösung (5:38)
5.X. Aufgabe 5.2 (0:44)
5.X. Aufgabe 5.2 Musterlösung (9:23)
6. Zusammenfassung
6. Zusammenfassung (5:46)
Teach online with
4.5.3. PriorityBlockingQueue
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock