Buscar

Aula 2 - Threads

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

THREADS
Fábio Gomes Coqueiro
1
PROCESSOS
Para executar um programa, um sistema operacional cria vários processadores virtuais, cada um para executar programa diferente.
PROCESSOS
Para monitorar esses processadores virtuais, o sistema operacional tem uma tabela de processos.
PROCESSOS
Segundo TANENBAUM, um processo é definido como um programa que está sendo executado em um dos processadores virtuais do sistema operacional.
PROCESSOS
Vários processos podem compartilhar concorrentemente CPU e recursos de hardware. Tal compartilhamento deve ser transparente.
THREADS
Da mesma forma que os processos, um thread executa sua própria porção de código, independente de outros threads.
THREADS
Diferentemente dos processos, os threads não tem uma grande preocupação com a transparência. Portanto, proteger dados contra o acesso inadequado por threads dentro de um único processo fica inteiramente a cargo dos desenvolvedores da aplicação.
THREADS
A necessidade de se fazer várias coisas simultaneamente, ao mesmo tempo, paralelamente, aparece frequentemente na computação. 
Para vários programas distintos, normalmente o próprio sistema operacional gerencia isso através de vários processos em paralelo.
THREADS
Em um programa só (um processo só), se queremos executar coisas em paralelo, normalmente falamos de Threads.
THREADS
Em um programa em Java podemos querer executar 2 ou mais threads ao mesmo tempo, ou seja, 2 ou mais procedimentos internos do programa ao mesmo tempo.
THREADS
Uma Thread é similar à um programa com início, sequência de execução e fim em qualquer momento de sua execução. Porém a Thread não é um programa, já que não pode ser executada sozinha. Ela deve ser executada dentro de uma aplicação, e esta aplicação possuirá vários pontos de execuções, cada um representando uma Thread.
THREADS
Uma Thread em Java é composta de três partes:
1. CPU ( processamento compartilhado para executar rotinas )
2. Código ( linhas de código de uma rotina que serão executadas )
3. Dados ( área de dados que fazem parte da execução da rotina )
THREADS
Podemos criar uma Thread em Java de duas maneiras:
Estendendo o comportamento da classe Thread
2. Implementando a interface Runnable
THREADS
Métodos importantes da classe Thread
run() - é o código que a thread executará.
start() - sinaliza à JVM que a thread pode ser executada, mas saiba que essa execução não é garantida quando esse método é chamado, e isso pode depender da JVM.
isAlive() - volta true se a thread está sendo executada e ainda não terminou.
sleep() - suspende a execução da thread por um tempo determinado;
yield() - torna o estado de uma thread executável para que thread com prioridades equivalentes possam ser processadas, isso será estudando mais adiante;
currentThread() - é um método estático da classe Thread que volta qual a thread que está sendo executada.
getName() - volta o nome da Thread, você pode especificar o nome de uma Thread com o método setName() ou na construção da mesma, pois existe os construtores sobrecarregados.
Suspendendo uma thread
try {  
    sleep(5*60*1000);  
}  
catch (InterruptedException ex) {  
}  
Hierarquia de thread
Você poderá ligar uma thread à outra, usando o método join().
Desafio
Implementar um simulador em que um prédio tenha três elevadores que funcionam independentes.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando