Maar zelfs als u een multi-processor (SMP) systeem heeft, zullen er altijd meer processen zijn dan processors in uw systeem, dus is schakelen nog steeds nodig.
Een thread is een &os2; eenheid voor het bijhouden van taak schakelen. Een programma kan diverse threads bevatten, maar per definitie, heeft het er op z'n minst ‚‚n. Maar omdat een programma meer dan ‚‚n thread kan bevatten kan schakelen zelfs tussen threads in het zelfde programma plaats vinden. Dit wordt multithreading genoemd. In tegenstelling tot menig ander besturingssysteem ondersteunt &os2; dit volledig en het doet het zelfs op een zeer vriendelijke en betrouwbare manier.
Het deel van de kernel van &os2; dat schakelt tussen de threads wordt de "planner" genoemd.
De term "thread" werd gekozen omdat in ‚‚n thread de programma instructies achter elkaar worden uitgevoerd, terwijl tussen threads je er nooit zeker van kunt zijn welke instructie uit ‚‚n thread wordt uitgevoerd voor of na een instructie uit een andere thread. Het is alleen &os2; die het schakelen doet tussen threads zonder dat de thread er zelf van weet (of, op SMP-systemen, threads kunnen werkelijk tegelijk op verschillende processors lopen).
Goed geprogrammeerde programmatuur gebruikt verschillende threads om er zeker van te zijn dat de gebruiker snel resultaat ziet van zijn invoer en muis acties. B.v. als een opdracht uitvoert in een programma dat een hele tijd kan duren, moet een programma een tweede thread starten voor deze taak. Terwijl deze nieuwe thread op de achtergrond blijft werken, is de gebruikersinterface (van de hoofd thread van het programma) weer klaar voor nieuwe invoer.
Niet zo goed geprogrammeerde programmatuur gebruikt slechts ‚‚n thread voor zowel de gebruikersinterface als de uit te voeren taken. Met als resultaat, dat als een taak wordt uitgevoerd, de gebruikersinterface geblokkeerd is.
Threads kunnen verschillende prioriteiten hebben. Zie "Thread prioriteiten" voor details.
Aan de andere kant, een proces is de &os2; term voor een applicatie die in het geheugen is geladen. Elk proces moet op z'n minst ‚‚n thread hebben.
Ieder proces bevat gewone gegevens zowel als toegangs controle tot systeem bronnen. Processen zijn tegen elkaar beschermd d.w.z. dat &os2; toegang tot geheugen dat niet tot een proces behoort verhindert ("geheugen bescherming").
Daar tegenover staat dat, verschillende threads in een proces allemaal toegang hebben tot het geheugen van het proces, omdat het geheugen beheerd wordt per proces. Hetzelfde geldt voor andere systeembronnen zoals open bestanden.
Opsomming: Een thread is het &os2; kernel concept voor het beheer van het eigendom van de CPU. Daar tegenover staat dat, een proces het concept is voor het toe-eigenen van al het andere: bestanden, apparaten en geheugen.
Selecteer uit de onderstaande lijst voor meer informatie: