Multithreading (softwareseitig)

Multithreading (softwareseitig)

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.

Ziel des Multithreading

Threads werden verwendet, um einzelnen Programmteilen eine schnelle Reaktion auf Ereignisse zu erlauben.

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.

Multithreading kann die Programmierung von Systemen wesentlich vereinfachen, sofern adäquate Unterstützung durch Programmiersprache oder Frameworks geboten wird. Da Quelltext und Laufzeit in ihrer Sequenzialität übereinzustimmen scheinen, erhalten Entwickler einen intuitiven Zugang.

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.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Mehrfädigkeit — Der Begriff Multithreading (auch Mehrfädigkeit) bezeichnet das gleichzeitige Abarbeiten mehrerer Threads (das sind Ausführungsstränge innerhalb eines einzelnen Prozesses oder eines Tasks). Software Meist ist mit dem Begriff das softwareseitige… …   Deutsch Wikipedia

  • MPlayerXP — MPlayer Basisdaten Entwickler …   Deutsch Wikipedia

  • Mencoder — MPlayer Basisdaten Entwickler …   Deutsch Wikipedia

  • Mplayer — Basisdaten Entwickler …   Deutsch Wikipedia

  • Smplayer — MPlayer Basisdaten Entwickler …   Deutsch Wikipedia

  • Z Object Publishing Environment — Zope (Z Object Publishing Environment) ist ein objektorientierter, in der Programmiersprache Python geschriebener, freier Webanwendungs Server mit offenem Quelltext. Zope stellt eine Plattform für die Realisierung von Webanwendungen dar und… …   Deutsch Wikipedia

  • Ollydbg — ist ein von Oleh Yuschuk entwickelter 32 Bit Debugger für Windows Betriebssysteme. Hauptsächlich kann OllyDbg zur binären Codeanalyse verwendet werden, um beispielsweise eine Fehlerbereinigung von Programmen durchzuführen. OllyDbg arbeitet auf… …   Deutsch Wikipedia

  • Hyperthreading — Hyper Threading Technology (kurz: HTT, üblicherweise nur Hyper Threading genannt) ist die Implementierung von hardwareseitigem Multithreading in Intel Prozessoren. Durch mehrere vollständige Registersätze und ein komplexes Steuerwerk werden… …   Deutsch Wikipedia

  • Hyper-Threading — Technology (kurz: HTT, üblicherweise nur Hyper Threading genannt) ist die Implementierung von hardwareseitigem Multithreading in Intel Prozessoren. Durch mehrere vollständige Registersätze und ein komplexes Steuerwerk werden intern parallel… …   Deutsch Wikipedia

  • Kooperative Multitasking — Der Begriff Multitasking [ˌmʌltiˈtɑːskɪŋ] (engl.) bzw. Mehrprozessbetrieb bezeichnet die Fähigkeit eines Betriebssystems, mehrere Aufgaben (Tasks) nebenläufig auszuführen. Dabei werden die verschiedenen Prozesse in so kurzen Abständen immer… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”