Threads são conhecidas como processos leves, também são consideradas como um processo dentro de outro processo. As threads são executadas em processos, mas as duas usam conceitos diferentes e devem ser tratadas em separado. Enquanto os processos são usados para agrupar recursos, as thereads são entidades escalonadas para usar a CPU.
O thread também é usado para um programa dividir a si mesmo em duas ou mais tarefas simultâneas. Quando existem várias threads em um único processo esse é chamado de Multithread.
Recomendamos que você leia também sobre a gerencia de processos.
Vantagens de se usar Threads
O uso de Threads traz algumas vantagens para o sistema, dentre elas estão:
O tempo de resposta: Mesmo que uma aplicação tenha parte dela bloqueada ou sua execução esteja lenta, o thread permite que o usuário continue com a execução.
Compartilhamento de recursos: Foram criadas para compartilhar todos os recursos do sistema.
Economia: Fica bem mais em conta criar ou substituir o contexto das threads.
Gerencia de Threads
A gerencia de threads é dividida em quatro partes, a região critica, exclusão mutua, sinais e trap.
Região critica: Essa é a região em que são realizados os acessos concorrentes dos processos. Para saber um pouco mais sobre concorrência no SO, acesse: tudo sobre concorrência nos sistemas operacionais.
Exclusão mutua: Usada para evitar que dois ou mais processos ou threads tenham acesso ao mesmo tempo a um recurso compartilhado em especifico.
Sinais: São interrupções de software que notificam ao processo que um evento ocorreu.
Trap: Trata-se de um serviço onde um processo notifica o Sistema Operacional pedindo para usar algum serviço que esteja protegido. O trap irá bloquear o pedido até que o sistema operacional realize o mesmo.
Sequência lógica para que processos utilizem recursos do sistema
A sequência lógica funciona da seguinte maneira:
Pedido: O processo realiza um pedido, em forma de trap, solicitando o uso de um referido recurso, caso o recurso esteja sendo usado por outro processo, o mesmo será bloqueado até que a liberação seja efetuada;
Uso: O processo pode fazer uso do recurso solicitado;
Liberação: A liberação do recurso para outro processo é realizada pelo Sistema operacional assim que o processo anterior termina a sua ação.
Gostou da leitura? Aprenda mais sobre Threads lendo sobre processos em “gerencia de processos”.