Nebenläufigkeit
Nebenläufigkeit bezeichnet die Fähigkeit eines Computersystems, mehrere Aufgaben zeitlich überlappend auszuführen. Dabei können die Aufgaben auf einem einzelnen Prozessor durch Kontextwechsel interleaved werden oder auf mehreren Prozessoren tatsächlich parallel laufen. Der Schwerpunkt liegt auf der Struktur der Ausführung (Interleaving, Reaktionsfähigkeit, asynchrone Ereignisse), während Parallelität die gleichzeitige Ausführung auf mehreren Rechenressourcen beschreibt.
Typische Bausteine sind Prozesse und Threads, asynchrone Aufrufe, Event-Driven-Architekturen und Scheduler. Nebenläufigkeit entsteht durch Multithreading, Aufgabenverteilung
Zentrale Probleme sind Datenrennen, Deadlocks, Livelocks und unvorhersehbare Ausführungspfade aufgrund nondeterministischer Scheduling-Entscheidungen. Ohne geeignete Synchronisation kann
Synchronisationsmechanismen wie Mutex, Semaphore, Konditionsvariablen, Barrieren oder atomare Operationen helfen bei kritischen Abschnitten und Sichtbarkeit. Lock-Free-
Sprachen und Plattformen unterscheiden sich in Modellen und Garantien: Java/C++, Go, Rust, Erlang. Java/C++ nutzen geteilten
Anwendungen reichen von GUI-Programmen über Servern bis hin zu Echtzeitsystemen, wo Nebenläufigkeit Reaktionsfähigkeit, Effizienz und Skalierbarkeit