O que é Multithreading?
No mundo da computação, o multithreading é a tarefa de criar um novo encadeamento de execução em um processo existente, em vez de iniciar um novo processo para iniciar uma função. Essencialmente, a tarefa do multithreading visa fazer um uso mais sábio dos recursos do computador, permitindo que os recursos que já estão em uso sejam utilizados simultaneamente por uma pequena variante do mesmo processo. O conceito básico de multithreading existe há algum tempo, mas ganhou maior atenção à medida que os computadores se tornaram mais comuns na década de 90.
Essa forma de multiplexação por divisão de tempo cria um ambiente em que um programa é configurado para permitir que os processos sejam divididos ou divididos em dois ou mais encadeamentos de execução. A execução paralela de threads no mesmo programa é frequentemente apontada como um uso mais eficiente dos recursos do sistema de computador, especialmente nos sistemas de desktop e laptop. Ao permitir que um programa lide com várias tarefas com um modelo de multithreading, o sistema não precisa permitir que dois programas separados iniciem dois processos separados e precisa usar os mesmos arquivos ao mesmo tempo.
Embora existam muitos defensores do multithreading, há também aqueles que entendem o processo como potencialmente prejudicial à tarefa de computação. Alguns pensam que o período de tempo que é inerente ao permitir que um fork ou thread se separe de um processo em execução configura circunstâncias em que pode haver algum conflito entre os threads ao tentar compartilhar caches ou outros recursos de hardware. Há também alguma preocupação de que a ação de multithreading possa diminuir o tempo de resposta de cada thread único no processo, negando efetivamente qualquer economia de tempo gerada pela configuração.
No entanto, o multithreading continua sendo uma das opções viáveis na multitarefa de computadores. Não é incomum que um processador permita multithreading, bem como a criação de novos processos para lidar com várias tarefas. Isso permite ao usuário final todos os benefícios da alternância de contexto e ainda faz o melhor uso dos recursos disponíveis.