Multithreading (softwareseitig)
aus Wikipedia, der freien Enzyklopädie
Multithreading wird die Fähigkeit eines Prozesses genannt, mehrere Bearbeitungsstränge (Threads) gleichzeitig abzuarbeiten. Im Allgemeinen verwenden die Threads eines Prozesses gemeinsame Ressourcen wie Adressraum, File-Handles etc.
Ob die Gleichzeitigkeit real oder scheinbar ist, hängt dabei vom verwendeten Betriebssystem und der Hardware ab. Um reale Gleichzeitigkeit zu erreichen, muss ein Mehrprozessorsystem zur Verfügung stehen, und das Betriebssystem muss es einem Prozess erlauben mehrere CPUs gleichzeitig (nebenläufig) für verschiedene Threads zu verwenden.
[Bearbeiten] Ziel des Multithreading
Threads werden verwendet, um einzelnen Programmteilen eine schnelle Reaktion auf Ereignisse zu erlauben, während andere Programmteile langwierige Aufgaben bearbeiten.
Nur durch die Aufteilung eines Programms in mehrere Threads ist es möglich die durch mehrere oder mehrfädige Prozessoren gebotene Leistung in einer einzelnen Anwendung auszunutzen.
[Bearbeiten] Abgrenzung zu Multitasking
Bei Multitasking wird die Nebenläufigkeit mehrerer Prozesse gefordert, während sich Multithreading auf die Nebenläufigkeit von Bearbeitungssträngen innerhalb eines Prozesses bezieht.
Einige Betriebssysteme, z. B. Linux vor Kernel Version 2.6, realisieren Multithreading innerhalb des Multitasking. Hier ist jeder Thread ein eigener Task, der selbstständig in der Prozesstabelle aufgeführt wird. Im Gegensatz zu eigenständigen Prozessen teilen sich die verschiedenen Threads eines Prozesses jedoch den Speicher (Heap) und die vom Scheduler zugeteilte Rechenzeit.