Thread (informatica)

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Geheugenverdeling single-threaded versus multi-threaded

Een thread (Engels voor draad) is een begrip in de computerprogrammering. Multitasking computers kunnen hun tijd zeer snel tussen verschillende taken verdelen en in het geval van multiprocessor computers ook gelijktijdig taken uitvoeren. Door een grotere taak te verdelen in meerdere threads kunnen sommige taken sneller uitgevoerd worden door de computer.

Techniek[bewerken]

Het gebruik van meerdere threads wordt multithreading genoemd. In tegenstelling tot een proces dat een volledig geïsoleerd geheugengebied heeft, delen de verschillende threads van een bepaald proces hetzelfde codegebied, datagebied en heapgebied. Enkel de stapels zijn uniek bij threads. Hierdoor is er weinig OS-overhead bij het schakelen tussen threads in een proces aangezien geen volledige contextwisseling dient uitgevoerd te worden. Daarom wordt een thread ook weleens een "light-weight process" genoemd in sommige operating systems.

Voordelen van threads zijn onder andere de mogelijkheid om de verwerking over meerdere processoren te splitsen. Ook op een machine met één processor kunnen threads voordeel bieden: zo kan één thread rekentaken uitvoeren terwijl de andere zich kan bekommeren over invoer of uitvoer. Onmerkbaar voor de gebruiker, wordt in een proces geschakeld tussen verschillende threads. Aan individuele threads wordt een deel van de beschikbare processortijd toegekend, zodat taken tegelijkertijd uitgevoerd lijken te worden. (Zoals bijvoorbeeld animatie op een GUI.)

Een webbrowser kan bijvoorbeeld met behulp van threads meerdere taken tegelijk uitvoeren zoals het ophalen van een webpagina van een server en het afhandelen van de acties van de gebruiker in menu's of dialoogvensters. Vaak moeten de threads die de communicatie met de server verrichten, wachten tot boodschappen zijn overgekomen en beantwoord.

Zie ook[bewerken]