- Theoretische Grundlagen - Parallelität (Programme->Prozesse->main+Threads, Garbage Collection) - Threadzustände - Implementierung - eigene Thread-Klasse (extends Thread) - eigene Runnable-Klasse (implements Runnable) - als innere Klassen (in Klassen/Methoden) - referenzierte lokale Variablen von außerhalb final - anonyme Runnable-Klasse - "anoyme Runnable-Klasse" als Lambda-Expression - Methoden zum Starten - Runnable.run() - Thread.run() - Thread.start() - Weitere Methoden - t.yield() - t.interrupt() + InterruptedException + immer warten - t.join() - Thread.sleep() - Synchronisierung (Locks) - Interface Lock, ReentrantLock - intrinsisches Lock - synchronized-Block - synchronized im Methoden-Header - Deadlock - Consumer/Producer - wait - notify - notifyAll - Semaphore (- Fututres)