Softwareseitiges Multithreading
Softwareseitiges Multithreading (auch nur Multithreading, oder selten auch Mehrfädigkeit) wird die Aufteilung eines Programmes in mehrere gleichzeitig abzuarbe…
Softwareseitiges Multithreading (auch nur Multithreading, oder selten auch Mehrfädigkeit) wird die Aufteilung eines Programmes in mehrere gleichzeitig abzuarbeitende Bearbeitungsstränge (Threads) genannt. Im Allgemeinen verwenden die Threads eines Programmes gemeinsame Ressourcen wie Adressraum, Datei-Handles etc.
Softwareseitiges Multithreading unterscheidet sich von hardwareseitigem Multithreading, welches das scheinbare oder echte gleichzeitige Abarbeiten mehrerer Threads in nur einem vollständigen Prozessor-Kern eines Prozessors unterstützt.
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, ein Mehrkernprozessor oder ein Prozessor mit Core MultiThreading hardwareseitigem Multithreading 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 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
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.