Det är inte riktigt ett exakt exempel på multithreading. Även om det kanske * verkar * som Microsoft Word gör båda sakerna samtidigt, är det mer troligt att du använder en kombination av:
* asynkron I/O: Microsoft Word skickar en begäran om att läsa filen och en begäran om att skriva ut dokumentet. Det väntar inte på att någon av operationen ska avsluta innan den fortsätter. Operativsystemet hanterar läsning och utskrift i bakgrunden medan ordet fortsätter att vara lyhörd för användaren.
* Flera processer: Moderna operativsystem är mycket bra på att jonglera flera uppgifter. Det är möjligt att filläsningen sker i en separat process än utskriften, vilket ger en illusion av samtidig åtgärd.
Sann multithreading:
Multithreading inom en enda process (som ord) skulle involvera:
* Flera trådar: Föreställ dig att det har flera små program (trådar) som körs inuti.
* delade resurser: Dessa trådar skulle dela samma minne och resurser, vilket möjliggör mycket effektiv kommunikation mellan dem.
* samtidig exekvering: Trådarna kan potentiellt utföra instruktioner samtidigt (på moderna multikärnprocessorer).
Exempel på multithreading i ord:
* stavningskontroll: Ordet kan ha en tråd tillägnad att kontrollera stavning i bakgrunden när du skriver. Detta gör att du kan fortsätta skriva utan att vänta på att stavningskontrollen är klar.
* autosave: En annan tråd kanske körs i bakgrunden för att spara ditt dokument med jämna mellanrum.
Den viktigaste skillnaden:
Exemplet du gav framhäver en gemensam missuppfattning. Medan operativsystem är mycket bra på att skapa en illusion av samtidiga uppgifter, uppnås detta ofta genom asynkrona I/O och flera processer. Sann multithreading involverar flera oberoende trådar inom en enda process, vilket erbjuder ännu finare kontroll och effektivitet.