LPOO10 Threads

1013 palavras 5 páginas
Linguagem de Programação
Orientada 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

Relacionados