LPOO10 Threads
1013 palavras
5 páginas
Linguagem de ProgramaçãoOrientada a Objeto
Threads
Professora Sheila Cáceres
Introdução
Com frequência precisamos rodar mais de uma tarefa ao mesmo tempo (ex: navegar pela internet e ouvir música). Podemos executar tarefas em paralelo
(concorrentemente) usando Threads (ex. Uma thread para navegar pela internet e outra para ouvir música) Em Java, usamos a classe Thread do pacote java.lang para criarmos linhas de execução paralelas
2
Estados de uma Thread em Java
Término do tempo de dormida
nascimento start( )
notify( )
Fim da E/S
pronta
notifyAll( )
run( )
Alocar um processador
executando wait( )
esperando
sleep( )
dormindo
Fim do
Método run( )
morta
E/S
bloqueada
3
Criação de Threads
Existem duas maneiras de criar threads em java:
Maneira 1
Criar uma classe que herda de java.lang.Thread e nela sobrescrever o método run() contendo os comandos que a thread deverá executar.
O método run da classe Thread não faz nada (não é abstrato).
class MinhaThread extends Thread{ public void run(){
<instruções da thread>
}
}
A seguir, criamos instancias da classe e as iniciamos chamando o método start() que rodará o run()
MinhaThread t = new MinhaThread();
t.start();
Maneira 2
Criar uma classe que implementa a interface Runnable.
Runnable tem só um método: run().
Nossa classe seria obrigada a implementar o método run contendo os comandos que a thread executará.
class MinhaClasse implements Runnable{ public void run(){
<instruções da thread>
}
...outros métodos, construtores, atributos, etc
}
A seguir, em outro lugar, criamos uma instância de MinhaClasse e passamos a instância como argumento do construtor da classe Thread:
MinhaClasse miClasse = new MinhaClasse();
Thread t = new Thread(miClasse);
t.start(); // igual que na Maneira 1
4
Criação de Threads
Cada vez que enviar a mensagem start() para uma instância de uma thread, uma nova linha de execução será iniciada com os comandos do método run(), que rodará em