Nebenläufigkeit
Erscheinungsbild
Nebenläufigkeit bezeichnet die Eigenschaft von Programmcode nicht linear hintereinander ausgeführt zu werden, sondern parallel ausführbar zu sein. Die Nebenläufigkeit von mehreren unabhängigen Prozessen bezeichnet man als Multitasking; Nebenläufigkeit innerhalb eines Prozesses als Multithreading.
Daraus können sich einige Probleme ergeben:
- Der Kontext jedes Programmteils vor unerwarteter Veränderung durch andere Teile geschützt werden. Sollen Daten gemeinsam bearbeitet werden, dann muss der Zugriff synchronisiert werden, z.B. durch Benutzung von Monitoren.
- Ist die Ausführung der Programmteile voneinander abhängig, können Situationen entstehen, in denen zwei Teile jeweils aufeinander warten (Deadlock) oder ein Programmteil eine Resource nie nutzen kann, da ihm immer andere zuvorkommen (Verhungern/Starvation).