Aufgaben Threads
- Klären Sie die Begriffe: Programm, Prozess, Thread, Betriebssystem!
- Wie werden Threads gestartet?
- Was passiert, wenn Sie in einem Thread-Objekt die Run-Methode direkt aufrufen?
- Wann würde man die Schnittstelle Runnable verwenden anstatt die Threadklasse zu erweitern?
- Wie können Threads beendet werden?
- Was bewirkt die Methode
join(1000)
? - In welchem Zusammenhang mit Threads stehen die Begriffe: Unteilbarkeit und Sichtbarkeit?
- Was bezweckt das Schlüsselwort
volatile
? - Wozu dient das Schlüsselwort
synchronized
? - Welchen Vorteil bieten Synchronized-Blöcke gegenüber Synchronized-Methoden?
- Gegeben ist nachfolgendes Szenario. Es wurden aus C die Objekte o1 und o2 instanziiert. Ein Thread ruft die Methode ms1 des Objekts o1 auf. Welche Methoden von o1 bzw. o2 kann ein anderer Thread aufrufen?
1 2 3 4 5
class C { public void m1() public void m2() public synchronized void ms1() public synchronized static void ms2()
- Welche Datentypen werden durch Java standardmäßig atomar behandelt?
- Wie behandelt man eine Read-Modify-Write-Sequenz?
- Wozu dient die Klasse AtomicInteger?
- Wie behandelt man das Ende eines Threads?
- Wozu dienen die Schlüsselwörter
wait
undnotify
? - Wann nutzt man
notifyall
? - Wie weist man Threads Prioritäten zu?
- Was ist der Unterschied zwischen Vorder- und Hintergrundthreads?
- Welche Zustände kann ein Thread einnehmen?
- Zugrundegelegt wird das Parkhausbeispiel auf Folie 12. Können die Anweisungen in
leave()
vertauscht werden? Kannwhile
inenter()
durchif
ersetzt werden?
- Welche Synchronisationsmechanismen zwischen Prozessen kennen Sie aus UNIX-artigen Betriebssystemen?
- Wann können Verklemmungen zwischen Threads entstehen? Welche Bedingungen müssen hierfür vorhanden sein?
- Wie können Sie Verklemmungen sicher verhindern?
- Lesen Sie das Kapitel 17.4
Fakultativ
- Lambda-Ausdrucke in Java sind im Prinzip Methoden ohne Namen. Rückgabetyp und Exceptions werden vom Compiler erschlossen. Beispiel:
(x) -> { return x+1; }
oder alternativx -> x+1
. - Wandeln Sie die Threaderzeugung aus Folie 8 mittels Lambda-Ausdruck um (Lambda-Ausdrücke sind in Java seit Version 8 verfügbar).
Letzte Änderung: 14. March 2024 08:30