Índice:
Definição - O que significa Multithreading?
Multithreading é um tipo de modelo de execução que permite a existência de vários encadeamentos no contexto de um processo, para que sejam executados independentemente, mas compartilhem seus recursos de processo. Um encadeamento mantém uma lista de informações relevantes para sua execução, incluindo o agendamento de prioridades, os manipuladores de exceção, um conjunto de registros da CPU e o estado da pilha no espaço de endereço do processo de hospedagem.
Multithreading também é conhecido como threading.
Techopedia explica Multithreading
O encadeamento pode ser útil em um sistema de processador único, permitindo que o encadeamento de execução principal responda à entrada do usuário, enquanto o encadeamento de trabalho adicional pode executar tarefas de longa execução que não precisam da intervenção do usuário em segundo plano. A segmentação em um sistema multiprocessador resulta em verdadeira execução simultânea de threads em vários processadores e, portanto, é mais rápida. No entanto, requer uma programação mais cuidadosa para evitar comportamentos não intuitivos, como condições de corrida, impasses, etc.
Os sistemas operacionais usam o encadeamento de duas maneiras:
- Multithreading preventivo, no qual a alternância de contexto é controlada pelo sistema operacional. A alternância de contexto pode ser realizada em um momento inadequado. Portanto, um encadeamento de alta prioridade pode ser indiretamente antecipado por um encadeamento de baixa prioridade.
- Multithreading cooperativo, no qual a alternância de contexto é controlada pelo encadeamento. Isso pode causar problemas, como deadlocks, se um encadeamento for bloqueado aguardando a liberação de um recurso.
As versões de 32 e 64 bits do Windows usam multithreading preventivo, no qual o tempo disponível do processador é compartilhado, de modo que todos os encadeamentos tenham uma fatia de tempo igual e sejam atendidos em modo baseado em fila. Durante a alternância de encadeamentos, o contexto de um encadeamento antecipado é armazenado e recarregado no próximo encadeamento na fila. O intervalo de tempo é tão curto que os threads em execução parecem estar sendo executados em paralelo.
Esta definição foi escrita no contexto da arquitetura de computadores