Please enable JavaScript.
Coggle requires JavaScript to display documents.
THREADS (ESTADOS DA THREAD (BLOCKED (Quando está esperando dados, Quando…
THREADS
ESTADOS DA THREAD
-
WAITING
Uma thread que está esperando indefinidamente por outra thread para executar uma determinada ação está neste estado
RUNNABLE
Quando volta de algum estado, ou quando foi invocada o start() na referência.
TIMED_WAITING
Uma thread que está esperando por outro thread para executar uma ação por até um tempo de espera especificado está neste estado
NEW
Quando a thread é criada, porém o start() ainda não foi invocado na referência.
-
-
-
-
VANTAGENS
CPU-Bound e I/O-Bound podem se sobrepor, acelerando a aplicação
-
I/O-BOUND
-
-
-
Classificados como Network-Bound (quando efetuam muita comunicação, gerando alto tráfego na rede)
-
-
-
-
-
-
-
TIPOS
MODO NÚCLEO
A thread é quem recebe o quantum, sendo suspensa se excedê-lo
-
-
-
-
-
HÍBRIDAS
-
-
-
DESVANTAGEM
-
Quando é realizada uma chamada bloqueante pelo modo núcleo todos os modos usuário são colocados em espera
MODO USUÁRIO
-
-
-
-
Como uma tabela de processos, gerenciada pelo runtime
-
-
Por meio de uma biblioteca (criação, exclusão, gerenciamento, etc)
ESCALONAMENTO
O núcleo escolhe um processo e passa o controle a ele, que escolhe uma thread
-
-
VANTAGEM
Possibilidade de implementar aplicações multithreads mesmo
em sistemas operacionais que não suportam threads
-
-
-
AMBIENTES
MONOTHREAD
PROBLEMAS
-
Em caso de término do processo, o sistema dispensa tempo para desalocar recursos previamente alocados
-
Sempre que um novo processo é criado, o sistema deve alocar recursos para cada processo, consumindo tempo de processador
O uso de processos no desenvolvimento de aplicações concorrentes demanda consumo de diversos recursos do sistema
-
Cada processo possui seu próprio contexto de hardware, de software e endereçamento
A utilização de processos independentes e subprocessos permitem dividir uma aplicação em partes que podem trabalhar de forma concorrente
MULTITHREAD
Uma thread pode ser definida como uma sub-rotina de um programa, que pode ser executada de forma assícrona, concorrentemente ao programa chamador
Deve-se especificar as threads e associá-las às sub-rotinas assícronas, possibilitando a execução concorrente de sub-rotinas dentro de um mesmo processo
Um único processo, pode possuir várias threads que compartilham o mesmo espaço de endereçamento
-
-
Pode-se minimizar a alocação de recursos do sistema e diminuir o overhead na criação, troca e eliminação de processos