Please enable JavaScript.
Coggle requires JavaScript to display documents.
Threads - Coggle Diagram
Threads
-
Permitem a execução paralela de tarefas, o que pode levar a uma melhor utilização dos recursos do sistema, como CPU e memória.
-
Threads de usuário são gerenciadas pelo próprio processo, sem suporte direto do sistema operacional.
Pode ser eficiente em termos de troca de contexto, mas limita o uso de múltiplos núcleos de CPU.
Threads de kernel são gerenciadas pelo sistema operacional, permitindo que múltiplas threads sejam executadas simultaneamente em diferentes núcleos de CPU.
Criação de threads geralmente envolve o uso de APIs específicas da linguagem de programação ou bibliotecas, como Thread em Java ou pthread em C.
Threads devem ser sincronizadas para evitar condições de corrida e garantir a consistência dos dados.
-
Sem mecanismos de sincronização, múltiplas threads acessando os mesmos recursos podem causar condições de corrida, onde o resultado da execução depende da ordem de execução das threads.
Para sincronizar threads, podem ser utilizados mutexes (para garantir exclusão mútua), semáforos (para controlar acesso a recursos), e barreiras (para sincronizar a execução de múltiplas threads).
Deadlocks ocorrências onde duas ou mais threads estão bloqueadas indefinidamente, esperando por recursos que estão sendo mantidos umas pelas outras.
Starvation é a situação onde uma thread nunca consegue acesso a um recurso necessário, devido à política de agendamento.
Livelocks são situações onde duas ou mais threads continuam a mudar de estado em resposta às ações das outras, sem fazer progresso real.
Threads em sistemas distribuídos são essenciais para a comunicação e coordenação entre diferentes nós.
Permitem a execução simultânea de várias tarefas, melhorando a eficiência do sistema.
O uso de threads pode simplificar a implementação de comunicação assíncrona e paralela entre os nós de um sistema distribuído.
O sistema operacional ou a runtime da aplicação pode usar diferentes políticas de escalonamento para decidir qual thread executar a seguir
Round-Robin é onde cada thread recebe um tempo de execução igual, em uma ordem circular.
-