Programmierung auf Multiprozessorsystemen
Auf einem Einzelprozessorsystem werden Threads nacheinander in Zeitscheiben ausgeführt. Dies steht im Gegensatz zu einem Multiprozessorsystem, bei dem mehrere Threads gleichzeitig ausgeführt werden, jeweils einer auf jedem verfügbaren Prozessor. Die Gesamtleistung kann durch die Ausführung unterschiedlicher Prozessthreads auf verschiedenen Prozessoren verbessert werden. Ein einzelnes Programm kann jedoch die Mehrprozessorverarbeitung nur nutzen, wenn es mehrere Threads hat.
Die Multiverarbeitung ist für die meisten Benutzer nicht erkennbar, da sie vollständig vom Betriebssystem und den von ihm ausgeführten Programmen verarbeitet wird. Benutzer können ihre Prozesse binden (erzwingen, dass sie auf einem bestimmten Prozessor ausgeführt werden). Dies ist jedoch weder erforderlich noch für die normale Verwendung empfohlen. Selbst für die meisten Programmierer bedeutet die Nutzung von Multiprocessing einfach die Verwendung mehrerer Threads. Auf der anderen Seite müssen Kernel-Programmierer mit mehreren Problemen umgehen, wenn sie Code für Multiprozessorsysteme portieren oder erstellen.