Definition

Thread

1. Im Internet wird der Begriff Thread seit dem Entstehen der Newsgroups im Usenet verwendet. Heute wird er auch zur Beschreibung von Diskussionen in Foren, Kommentar-Spalten und zum Beispiel auf großen Webseiten wie Reddit genutzt. Ein Thread ist dabei die Abfolge von Antworten auf ein ursprüngliches Posting eines Nutzers. Andere Nutzer können an verschiedenen Stellen in die Diskussion einsteigen und eigene Beiträge als Antworten verfassen. Grafisch werden Threads meist in Form einer Baumstruktur dargestellt, die mit einer Ursprungsnachricht beginnt und von dort aus immer weiter verzweigt. Manchmal werden dabei auch Teile der vorherigen Nachricht referenziert oder kopiert, so dass klar ist, worauf sich die Antwort bezieht.

2. In der Informatik ist ein Thread dagegen ein Teil eines größeren Prozesses, zum Beispiel als Platzhalter für ein Programm, das von mehreren Anwendern genutzt werden kann. Aus Sicht des Programms ist der Thread die Information, die es benötigt, um eine bestimmte Anforderung eines Nutzers oder auch eine andere Anfrage zu erfüllen. Wenn mehrere Anwender das Programm einsetzen oder wenn mehrere Anfragen von anderen Programmen auftreten, dann wird dafür jeweils ein eigener Thread erstellt und fortgeführt bis die Aufgabe erledigt ist. Der Thread erlaubt dem Programm also, immer genau zu wissen, für welchen Nutzer es gerade aktiv ist. Das ist insbesondere dann wichtig, wenn Aufgaben für mehrere Nutzer bearbeitet werden sollen. Die Daten werden dabei in speziellen Speicherbereichen abgelegt, die Register genannt werden. Das Betriebssystem speichert dann jedes Mal den Inhalt dieses Registers, wenn das Programm unterbrochen wird, und stellt ihn wieder her, wenn das Programm wieder die Kontrolle übernimmt.

Ein Thread und ein Task sind sich sehr ähnlich und werden deswegen häufig miteinander verwechselt. Die meisten Computer mit Ein-Kern-Prozessoren können nur jeweils eine Aufgabe erfüllen. Weil sie aber so schnell arbeiten, erscheint es, als würden sie mehrere Programme gleichzeitig bearbeiten und Aufgaben für mehrere Anwender erledigen können. Das Betriebssystem gibt aber jedem Programm nur nacheinander die Gelegenheit, seine Aufgaben zu erledigen. Andere Programme müssen in dieser Zeit warten, bis sie selbst an die Reihe kommen. Jedes dieser Programme wird vom Betriebssystem als Task eingestuft, dem bestimmte Ressourcen zugeordnet werden, die verwaltet werden müssen. Das System betrachtet also alle Programme auf dem Computer, seien es beispielsweise Word, Excel oder der Browser, als separate Tasks, die der Task-Manager üblicherweise in einer langen Liste anzeigt.

Wenn ein Programm eine I/O-Anfrage (Input, Output) erstellt, zum Beispiel weil es eine Datei lesen oder ein Dokument an den Drucker senden will, dann wird dazu jeweils ein eigener Thread erstellt. Die Daten, die zu diesem Thread gehören, erlauben es dem Programm später, an genau derselben Stelle weiterzumachen, an der es unterbrochen wurde. So kann es seine Aufgabe erfüllen. Andere Funktionen des Programms werden derweil in separaten Threads verwaltet. Aktuelle Betriebssysteme unterstützen heutzutage in der Regel sowohl Multitasking als auch Multithreading. Sie erlauben zudem Multithreading innerhalb von Prozessen, so dass das Betriebssystem nicht für jeden einzelnen Thread einen neuen Prozess erstellen muss.

Das Portable Operating System Interface (POSIX) umfasst eine Reihe von Schnittstellen, die es einem Programmierer ermöglichen, Threads in seinen Anwendungen zu nutzen. Auch andere Entwicklungsumgebungen unterstützen Threads. Objekt-orientierte Programmiersprachen bieten ebenfalls mehrere Möglichkeiten, um Multithreading zu nutzen. Ein Beispiel ist Java, das Multithreading bietet, selbst wenn das Betriebssystem es nicht unterstützt. Dazu enthält Java verschiedene Klassen, die ihre Eigenschaften an andere Klassen vererben können. Im Hintergrund wird dabei auch eine automatische Speicherbereinigung (engl. „Garbage Collection“) erledigt, um zum Beispiel nicht mehr benötigte Daten zu entfernen.

Diese Definition wurde zuletzt im Juli 2019 aktualisiert

Erfahren Sie mehr über IT-Berufe und Weiterbildung