Nebenläufigkeit

Nebenläufigkeit liegt vor, wenn mehrere Anweisungen oder Prozesse scheinbar oder tatsächlich gleichzeitig ausgeführt werden. Man unterscheidet dabei

- die scheinbare oder tatsächliche Nebenläufigkeit von Prozessen (siehe Concurrency) und
- die tatsächliche Nebenläufigkeit von Anweisungen (siehe Parallelism).

Müssen nebenläufige Prozesse (siehe z.B. das Problem der essenden Philosophen) oder nebenläufige Anweisungsfolgen innerhalb eines Prozesses (siehe Thread) zusammenarbeiten, ist es erforderlich, diese zu koordinieren bzw. zu synchronisieren. Hilfsmittel zur Synchronisierung können sein:

- Future
- Grand Central Dispatch
- Monitor
- Mutex
- Rendezvous
- Semaphor

Der fehlerfreie Entwurf nebenläufiger Systeme von Hand ist nicht einfach, weil es Menschen schwerfällt, alle möglichen zeitlichen Abfolgen von Anweisungen aus mehreren Prozessen oder Anweisungsfolgen (vergleiche Schedule) zu antizipieren und möglicherweise entstehende Probleme (z.B. Deadlock) zu vermeiden.


Link

https://de.wikipedia.org/wiki/Nebenl%C3%A4ufigkeit