Indholdsfortegnelse:
Definition - Hvad betyder multithreading?
Multithreading er en type eksekveringsmodel, der tillader flere tråde at eksistere inden for rammerne af en proces, så de udfører uafhængigt men deler deres procesressourcer. En tråd vedligeholder en liste over oplysninger, der er relevante for dens udførelse, herunder prioritetsplanen, undtagelsesbehandlere, et sæt CPU-registre og stakketilstand i adressepladsen for dens hostingproces.
Multitrådning er også kendt som gevind.
Techopedia forklarer Multithreading
Trådning kan være nyttig i et enkelt-processor-system ved at tillade, at hovedudførelsestråden reagerer på brugerinput, mens den ekstra arbejdertråd kan udføre langvarige opgaver, som ikke har brug for brugerindgriben i baggrunden. Trådning i et multiprocessorsystem resulterer i ægte samtidig udførelse af tråde på tværs af flere processorer og er derfor hurtigere. Det kræver dog mere omhyggelig programmering for at undgå ikke-intuitiv opførsel som racerforhold, deadlocks osv.
Operativsystemer bruger gevind på to måder:
- Forhindrende multithreading, hvor kontekstkontakten styres af operativsystemet. Kontektskifting kan udføres på et upassende tidspunkt, og derfor kunne en tråd med høj prioritet indirekte forhindres af en tråd med lav prioritet.
- Kooperativ multitrådning, hvor kontekstafbrydelse styres af tråden. Dette kan føre til problemer, såsom deadlocks, hvis en tråd blokeres og venter på, at en ressource bliver fri.
32- og 64-bit-versionerne af Windows bruger forudgående multithreading, hvor den tilgængelige processor-tid deles, så alle trådene får en lige tidssnit og serviceres i en købaseret tilstand. Under trådskift gemmes konteksten af en forudtømt tråd og genindlæses i den næste tråd i køen. Tidsafsnittet er så kort, at de kørende tråde ser ud til at udføres parallelt.
Denne definition blev skrevet i forbindelse med Computer Architecture