Det er ikke et nøjagtigt eksempel på multithreading. Selvom det kan * virke * som Microsoft Word gør begge ting på samme tid, er det mere sandsynligt, at det bruger en kombination af:
* asynkron I/O: Microsoft Word sender en anmodning om at læse filen og en anmodning om at udskrive dokumentet. Det venter ikke på, at nogen af driften slutter, før den fortsætter. Operativsystemet håndterer læsning og udskrivning i baggrunden, mens Word fortsat er lydhør over for brugeren.
* Flere processer: Moderne operativsystemer er meget gode til at jonglere med flere opgaver. Det er muligt, at fillæsningen sker i en separat proces end udskrivningen, hvilket giver illusionen om samtidig handling.
Ægte multithreading:
Multithreading inden for en enkelt proces (som ord) ville involvere:
* Flere tråde: Forestil dig, at ordet har flere små programmer (tråde), der kører inde i det.
* Delte ressourcer: Disse tråde ville dele den samme hukommelse og ressourcer, hvilket muliggør meget effektiv kommunikation mellem dem.
* Samtidig udførelse: Trådene kan potentielt udføre instruktioner på samme tid (på moderne multi-core processorer).
Eksempel på multithreading i ord:
* stavekontrol: Ord kan have en tråd dedikeret til at kontrollere stavemåde i baggrunden, mens du skriver. Dette giver dig mulighed for at fortsætte med at skrive uden at vente på, at stavekontrol er afsluttet.
* Autosave: En anden tråd kører muligvis i baggrunden for at gemme dit dokument med regelmæssige intervaller.
Den vigtigste forskel:
Eksemplet, du gav fremhæver en almindelig misforståelse. Mens operativsystemer er meget gode til at skabe illusionen om samtidige opgaver, opnås dette ofte gennem asynkron I/O og flere processer. Ægte multithreading involverer flere uafhængige tråde inden for en enkelt proces, der tilbyder endnu finere-kornet kontrol og effektivitet.