Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Conceito de Threads
Threads ou processos leves: vários fluxos de controle no mesmo espaço de endereçamento, executando quase em paralelo, como se fossem processos separados. Tem um contador de programa que controla qual instrução vai ser executada.
Os processos são usados para agrupar recursos; as threads são as entidades programadas para execução na CPU.
Cada funcionalidade está sob responsabilidade exclusiva de uma thread; como não existe nenhum fato descrito que essas threads criem outras threads, tem-se que 4 funcionalidades x 1 thread cada = 4 threads. Contudo, não se deve esquecer que todo programa tem um ponto inicial, ou seja, ao executar um programa, é criado um processo que contém uma thread inicial, a qual é responsável pela criação das outras threads. Ou seja, são 5 threads.
As threads somente armazenam as informações necessárias para a sua execução exclusiva: o contador de programa, o estado de execução, a pilha e os registrados. Os demais elementos são compartilhados entre todas as threads, não sendo exclusivos.
As aplicações com muito processamento (CPU-bound) tendem a não melhorar com threads, pois o principal recurso, a unidade de processamento, sempre estará ocupada. Desse modo, as threads são muito mais úteis no sentido de cooperação mútua, em que os recursos são compartilhados de modo organizado. Em aplicação com muitas operações de entrada/saída, a thread que está com controle da CPU é bloqueada até que a operação de entrada/saída seja concluída; nesse tempo, o controle da CPU é repassado para outra thread ser executada.
Benefícios da implementação de Threads
· Maior velocidade;
· Colaboração entre as tarefas;
· Compartilhamento entre recursos.
Estratégias de Implementação de Threads
Existem 3 principais estratégias de implementação:
No espaço do usuário: são implementadas somente de modo interno ao processo; assim, é responsabilidade do processo o gerenciamento de todas as threads e de seus recursos. Cada processo tem a sua própria tabela de threads.
No núcleo: são implementadas de modo acessível ao núcleo do sistema operacional, sendo este o responsável por todo o gerenciamento das threads. O núcleo é o único detentor da tabela threads.
Implementações híbridas: são combinadas as duas estratégias anteriores, de modo que o núcleo do sistema operacional gerencie as suas próprias threads, e cada uma dessas threads pode se dividir em threads do espaço do usuário, as quais são gerenciadas de modo interno ao processo.
Aplicações no Java
Execução: Start
Bloquear: sleep
Execução para Pronto: yield
Pronto para execução: não é possível

Mais conteúdos dessa disciplina