Niedrig
Nebenläufigkeit
Synchron, asynchron, parallel – Grundbegriffe und Fallstricke.
Warum Priorität „Niedrig"? Selten oder als Randthema (unter 40%). Überblick reicht meist.
Lernziele
- Synchron, asynchron, nebenläufig und parallel unterscheiden
- Race Condition und Deadlock erkennen
- Synchronisationsmechanismen benennen
Grundbegriffe
- Synchron: Aufrufer wartet, bis das Ergebnis da ist.
- Asynchron: Aufruf kehrt sofort zurück, Ergebnis später (Future/Promise).
- Nebenläufig: logisch gleichzeitig – auch verschachtelt auf einem Kern.
- Parallel: tatsächlich gleichzeitig auf mehreren Kernen.
Typische Probleme
- Race Condition: Ergebnis hängt von der zufälligen Ausführungsreihenfolge ab (ungeschützter gemeinsamer Zustand).
- Deadlock: zwei Threads warten zyklisch aufeinander. Lösung: einheitliche Sperrreihenfolge, Timeouts.
- Livelock / Starvation: Threads arbeiten, kommen aber nicht voran.
Synchronisation
javasynchronized schützt den kritischen Abschnitt
class Zaehler {
private int n = 0;
public synchronized void inc() { n++; }
}tsasync / await in TypeScript
async function laden() {
const res = await fetch("/api"); // nicht blockierend
return res.json();
}Übungen
Eine AntwortWas ist eine Race Condition?
Eine AntwortWofür steht `await` in async/await?