Det er ikke helt et nøyaktig eksempel på multithreading. Selv om det kan virke * som Microsoft Word gjør begge ting samtidig, er det mer sannsynlig å bruke en kombinasjon av:
* asynkron I/O: Microsoft Word sender en forespørsel om å lese filen og en forespørsel om å skrive ut dokumentet. Det venter ikke på at noen av operasjonen skal avsluttes før du fortsetter. Operativsystemet håndterer lesing og utskrift i bakgrunnen mens ordet fortsetter å være lydhør overfor brukeren.
* Flere prosesser: Moderne operativsystemer er veldig flinke til å sjonglere flere oppgaver. Det er mulig at fillesingen skjer i en egen prosess enn utskriften, noe som gir illusjonen av samtidig handling.
True Multithreading:
Multithreading i en enkelt prosess (som Word) vil innebære:
* Flere tråder: Se for deg at ord har flere små programmer (tråder) som kjører inni det.
* Delte ressurser: Disse trådene ville dele det samme minnet og ressursene, noe som gir veldig effektiv kommunikasjon mellom dem.
* Samtidig utførelse: Trådene kan potensielt utføre instruksjoner samtidig (på moderne flerkjerneprosessorer).
Eksempel på multithreading i Word:
* stavekontroll: Ordet kan ha en tråd dedikert til å sjekke stavemåte i bakgrunnen mens du skriver. Dette lar deg fortsette å skrive uten å vente på at stavekontrollen skal fullføre.
* Autosave: En annen tråd kjører kanskje i bakgrunnen for å lagre dokumentet med jevne mellomrom.
Nøkkelforskjellen:
Eksemplet du ga fremhever en vanlig misforståelse. Mens operativsystemer er veldig flinke til å skape illusjonen av samtidige oppgaver, oppnås dette ofte gjennom asynkrone I/O og flere prosesser. Ekte multithreading involverer flere uavhengige tråder i en enkelt prosess, og tilbyr enda finkornet kontroll og effektivitet.