Thread (informatica)

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

Een thread (Engels voor draad) op een computer maakt deel uit van een proces. Naast threads en processen zijn er ook nog fibers[1]. Door gebruik te maken van meerdere threads kan een computerprogramma snel wisselen tussen bepaalde onderdelen van taken. Het gebruik van meerdere threads wordt multithreading genoemd. In tegenstelling tot een proces, die 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 gezien 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 andere zich bekommeren over invoer of uitvoer. Onmerkbaar voor de gebruiker wordt er in een proces omgeschakeld tussen verschillende threads en worden ze elk een stukje processortijd toegekend zodat de taken tegelijkertijd gedaan 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]

Bronnen, noten en/of referenties