Nebenläufige Programme
In vielen Betriebssystemen wird Programmcode in Prozessen ausgeführt. In Programmen können verschiedene Programmteile unabhängig existieren. Diese lassen sich in separaten leichtgewichtigen Prozessen ausführen, sogenannte Threads. Beispielsweise könnte ein Webserver aus mehreren Threads bestehen um Anfragen zeitgleich abarbeiten zu können. Unter Umständen ist ein Austausch von Daten zwischen Threads erwünscht.