Modularität

Programme werden häufig als eine Reihe unterschiedlicher Teile modelliert, die miteinander interagieren, um ein gewünschtes Ergebnis oder einen gewünschten Service zu erzeugen.

Ein Programm kann als einzelne, komplexe Entität implementiert werden, die mehrere Funktionen zwischen den verschiedenen Teilen des Programms ausführt. Eine einfachere Lösung besteht darin, mehrere Entitäten zu implementieren, wobei jede Entität einen Teil des Programms ausführt und Ressourcen mit anderen Entitäten gemeinsam nutzt.

Durch die Verwendung mehrerer Entitäten kann ein Programm entsprechend seinen unterschiedlichen Aktivitäten getrennt werden, von denen jede eine zugeordnete Entität hat. Diese Entitäten müssen nichts über die anderen Teile des Programms wissen, außer wenn sie Informationen austauschen. In diesen Fällen müssen sie miteinander synchronisiert werden, um die Datenintegrität sicherzustellen.

Threads sind gut geeignete Entitäten für die modulare Programmierung. Threads ermöglichen die gemeinsame Nutzung einfacher Daten (alle Threads innerhalb eines Prozesses nutzen denselben Adressraum) und leistungsfähige Synchronisationsfunktionen wie Mutexes (gegenseitige Ausschlusssperren) und Bedingungsvariablen.