Please enable JavaScript.
Coggle requires JavaScript to display documents.
Threads - Coggle Diagram
Threads
Biblioteca de threads
-
Formas de implementação
Biblioteca operando inteiramente no espaço de usuário, sem suporte do kernel
Biblioteca operando em nível de kernel, com suporte direto do SO
Assíncrona
Cada thread é executado independentemente um do outro, e a thread-pai não precisa saber quando o thread-filho terminou
Já que os threads são independentes, normalmente há pouco compartilhamento de dados entre eles
A criação de threads assíncrona é a estratégia usada em servidores multithreaded, por exemplo
Síncrona
As threads criados pelo pai executam tarefas concorrentemente, mas o pai não pode continuar até que essas tarefas tenham sido concluídas
À medida que cada thread conclua seu trabalho, ele é encerrado e reencontra o seu pai
-
-
Benefícios
-
-
Economia
-
Criar, gerenciar e trocar o contexto das threads é mais econômico que fazer o mesmo com processos
-
Criação de Threads
Banco de Threads
-
Servidor recebe uma requisição e acorda uma thread do banco. Ao terminar, ela retorna ao banco
Vantagens
Em geral, é ligeiramente mais rápido atender uma solicitação com um thread existente do que criar uma nova thread
-
Cancelamento de Threads
-
Cancelamento adiado permite que o thread de destino verifique periodicamente se ele deve ser cancelado
Manipulação de Sinais
Sinais são usados em sistemas UNIX para notificar um processo de que ocorreu um evento em particular
-
No Windows existem as Chamadas de Procedimento Assíncronas (APCs) que simulam os sinais do mundo UNIX
Ativações do escalonador
Os modelos M:N e de dois níveis exigem comunicação para manter o número apropriado de threads de kernel alocados à aplicação
Implementado usando uma estrutura
de dados intermediária, conhecida como LWP
-
-
-
-