Softwareseitiges Multithreading

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. April 2005 um 13:06 Uhr durch ChristianHujer (Diskussion | Beiträge) (+ Abgrenzung zu Multitasking mit Linux als Beispiel). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Multithreading wird die Fähigkeit eines Prozesses genannt, mehrere Bearbeitungsstränge gleichzeitig abzuarbeiten.

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.

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, realisieren Multithreading innerhalb des Multitasking. Bei Linux ist jeder Thread ein eigener Task, der selbstä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.

Siehe auch