67 Curso de Java
Threads:
criação, start,
run e sleep
• Multitarefas: processos e threads
• Multitarefas: processos e threads
• Processo é um programa que está sendo
executado
• Multitarefas: processos e threads
• Processo é um programa que está sendo
executado
• Thread é a menor unidade de código que pode
ser executada
• Multitarefas: processos e threads
• Processo é um programa que está sendo
executado
• Thread é a menor unidade de código que pode
ser executada
• Ou seja, permite ao programa executar 2 ou
mais tarefas ao mesmo tempo
Exemplo
• Um editor de texto pode formatar um texto (ao
clicar num botão), e ao mesmo tempo pode enviar o
texto para impressão
Vantagens
• Programas mais eficientes
Ciclo de Vida
New Runnable
RunningDead
start()
run()
new Thread()
pronta pra execução
em execução
criação da instância
Waitingyield()
sleep()
wait()
suspend()
quando a thread “acorda”
notify() / notifyAll()
resume()
thread terminada
Criando uma Thread
• Extender a classeThread
• Implementar interface Runnable
start, run, sleep
• start: inicia o método run
start, run, sleep
• start: inicia o método run
• run: executa a tarefa da thread
start, run, sleep
• start: inicia o método run
• run: executa a tarefa da thread
• sleep: coloca a thread para dormir por X milissegundos
public class MinhaThread extends Thread {
private String nome;
private int valorAdormecida;
public MinhaThread(String nome, int valorAdormecida){
this.nome = nome;
this.valorAdormecida = valorAdormecida;
start();
}
public void run(){
System.out.println(nome + "foi iniciada");
try {
for (int i=0; i<6; i++){
System.out.println(nome + " tem contador valor " + i);
Thread.sleep(valorAdormecida);
}
} catch (InterruptedException e) {
System.out.println(nome + " foi interrompida");
}
System.out.println(nome + "foi terminada");
}
public static void main(String[] args){
MinhaThread thread = new MinhaThread("Thread1", 500);
MinhaThread thread2 = new MinhaThread("Thread2", 900);
}
}
public class MinhaThread extends Thread {
private String nome;
private int valorAdormecida;
public MinhaThread(String nome, int valorAdormecida){
this.nome = nome;
this.valorAdormecida = valorAdormecida;
start();
}
public void run(){
System.out.println(nome + "foi iniciada");
try {
for (int i=0; i<6; i++){
System.out.println(nome + " tem contador valor " + i);
Thread.sleep(valorAdormecida);
}
} catch (InterruptedException e) {
System.out.println(nome + " foi interrompida");
}
System.out.println(nome + "foi terminada");
}
public static void main(String[] args){
MinhaThread thread = new MinhaThread("Thread1", 500);
MinhaThread thread2 = new MinhaThread("Thread2", 900);
}
}
precisamos sobrepor o método run
https://github.com/loiane/curso-java-basico
Código Fonte:
Não conhece Git/Github?
http://www.loiane.com/2013/11/
screencast-git-e-github-para-iniciantes
http://loiane.training
Fórum para dúvidas + certificado do curso.
Cadastro em:
Obrigada!
http://loiane.com
facebook.com/loianegroner
twitter.com/loiane
https://github.com/loiane
youtube.com/loianegroner
http://loiane.training

Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep