Esse não é um exemplo preciso de multithreading. Embora possa parecer * que o Microsoft Word está fazendo as duas coisas ao mesmo tempo, é mais provável que use uma combinação de:
*
E/S assíncrona: O Microsoft Word envia uma solicitação para ler o arquivo e uma solicitação para imprimir o documento. Não espera que nenhuma das operações termine antes de continuar. O sistema operacional lida com a leitura e a impressão em segundo plano, enquanto o Word continua respondendo ao usuário.
*
Múltiplos processos: Os sistemas operacionais modernos são muito bons em fazer malabarismos com várias tarefas. É possível que a leitura do arquivo esteja acontecendo em um processo separado do que a impressão, dando a ilusão de ação simultânea.
Verdadeiro multithreading: Multithreading em um único processo (como o Word) envolveria:
*
vários threads: Imagine palavras com vários pequenos programas (tópicos) funcionando dentro dele.
*
Recursos compartilhados: Esses tópicos compartilhariam a mesma memória e recursos, permitindo uma comunicação muito eficiente entre eles.
* Execução simultânea: Os threads podem potencialmente executar instruções ao mesmo tempo (nos modernos processadores multi-core).
Exemplo de multithreading na palavra: *
Verificação ortográfica: O Word pode ter um thread dedicado a verificar a ortografia em segundo plano enquanto você digita. Isso permite que você continue digitando sem esperar que o verificador ortográfico termine.
*
AutoSave: Outro tópico pode estar em execução em segundo plano para salvar seu documento em intervalos regulares.
A principal diferença: O exemplo que você forneceu destaca um equívoco comum. Embora os sistemas operacionais sejam muito bons em criar a ilusão de tarefas simultâneas, isso geralmente é alcançado por meio de E/S assíncrona e vários processos. O verdadeiro multithreading envolve vários threads independentes em um único processo, oferecendo controle e eficiência ainda mais finos.