Thread (Informatik)
Unter einem Thread (engl. Faden, Strang) versteht man
- im Usenet und in vergleichbaren Web-Foren eine Folge von Diskussionsbeiträgen, von denen jeder mit Ausnahme des Ursprungs einen anderen Beitrag beantwortet (durch Bezugnahme mit einem References:-Feld) und die deshalb hierarchisch organisiert sind,
- in der Software-Architektur einen Ausführungsstrang innerhalb eines Prozesses, der nebenläufig zu anderen Threads ausgeführt werden kann.
Die folgenden Erläuterungen beziehen sich auf zweiteres.
Auf Betriebssystemen, die Threads unterstützen, ist der Verwaltungsaufwand für Threads üblicherweise geringer als der für Prozesse. Dadurch können beispielsweise die Taskumschaltzeiten bei Threads geringer ausfallen als bei Prozessen.
Ein Thread teilt sich mit den anderen vorhandenen Threads des zugehörigen Prozesses den gleichen Adressraum, so dass auf Speicher und andere auf den Adressraum abgebildete Betriebsmittel von allen Threads innerhalb des Prozesses direkt und gleichberechtigt zugegriffen werden kann. Dabei ggf. entstehende Zugriffskonflikte müssen durch den Einsatz von Synchronisationsmechanismen aufgelöst werden.
Da Threads, die dem selben Prozess zugeordnet sind, den gleichen Adressraum verwenden, ist eine Kommunikation zwischen diesen Threads von vorneherein möglich (vgl. mit Interprozesskommunikation bei Prozessen).
Threads innerhalb des gleichen Prozesses verwenden voneinander unabhängige Stapel (Stacks), die unterschiedlichen Abschnitten des Adressraums zugeordnet sind.
Jeder "Programmfaden" ist für die Ausführung einer bestimmten Aufgabe verantwortlich. Die Ausführungsstränge der Programmfunktionen können damit in überschaubare Einheiten aufgeteilt werden.
Siehe auch
Literatur
- Marcus Roming, Joachim Rohde: Assembler - Grundlagen der Programmierung. MITP-Verlag, ISBN 3-8266-0671-X
- Olaf Neuendorf: Windows Multithreading mit C++ und C#. MITP-Verlag, ISBN 3-8266-0989-1
- Heinz Kredel, Akitoshi Yoshida: Thread- und Netzwerk-Programmierung mit Java. Dpunkt Verlag, ISBN 3-89864-133-3
- Rainer Oechsle: Parallele Programmierung mit Java Threads. Hanser Fachbuchverlag, ISBN 3-446-21780-0
- Andres S. Tanenbaum: Moderne Betriebssysteme. Pearson Studium Verlag, ISBN 3-8273-7019-1
Externe Verweise
- Programmierung mit POSIX- und Java-Threads - Pack die Threads in den Bankomat!
- Prozesse und Threads - Hintergrund und aktuelle Entwicklungen - Klon-Debatte
- Forum
- Antworten zu häufig gestellten Fragen aus comp.programming.threads (englisch)
- Frequently Asked Questions, Most FAQ (englisch)
- Diskussion "Writing a scalable server" (englisch)
- The C10K problem (englisch)
- Business logic processing in a socket server - thread pools (englisch)