68 Curso de Java
Threads:
interface
Runnable
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 MinhaThreadRunnable implements Runnable {
private String nome;
private int valorAdormecida;
public MinhaThreadRunnable(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);
}
}
Não precisa chamar o método start
Também é preciso implementar
o método run
public class MinhaThreadRunnable implements Runnable {
private String nome;
private int valorAdormecida;
public MinhaThreadRunnable(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);
}
}
Também é preciso implementar
o método run
public static void main(String[] args){
MinhaThreadRunnable thread = new MinhaThreadRunnable("Thread1", 500);
MinhaThreadRunnable thread2 = new MinhaThreadRunnable("Thread2", 900);
Thread t1 = new Thread(thread);
Thread t2 = new Thread(thread2);
t1.start();
t2.start();
}
Só que precisamos criar uma thread e passar a
classe Runnable criada
public MinhaThreadRunnable(String nome, int valorAdormecida){
this.nome = nome;
this.valorAdormecida = valorAdormecida;
new Thread(this).start();
}
Ou podemos fazer isso diretamente do construtor
• Quando fazemos extends da Thread, o único método que
precisa ser sobreposto é o run
Qual abordagem é melhor?
• Quando fazemos extends da Thread, o único método que
precisa ser sobreposto é o run
• Quando implementamos Runnable, também precisamos
implementar o método run
Qual abordagem é melhor?
• Quando fazemos extends da Thread, o único método que
precisa ser sobreposto é o run
• Quando implementamos Runnable, também precisamos
implementar o método run
• Com a classe Runnable, podemos extender qualquer
outra classe
Qual abordagem é melhor?
• Quando fazemos extends da Thread, o único método que
precisa ser sobreposto é o run
• Quando implementamos Runnable, também precisamos
implementar o método run
• Com a classe Runnable, podemos extender qualquer
outra classe
• Se não for sobrepor qualquer outro método da classe
Thread, pode ser melhor usar a classe Runnable
Qual abordagem é melhor?
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 68: Threads: Interface Runnable

  • 1.
    68 Curso deJava Threads: interface Runnable
  • 2.
    public class MinhaThreadextends 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); } }
  • 3.
    public class MinhaThreadRunnableimplements Runnable { private String nome; private int valorAdormecida; public MinhaThreadRunnable(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); } } Não precisa chamar o método start Também é preciso implementar o método run
  • 4.
    public class MinhaThreadRunnableimplements Runnable { private String nome; private int valorAdormecida; public MinhaThreadRunnable(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); } } Também é preciso implementar o método run
  • 5.
    public static voidmain(String[] args){ MinhaThreadRunnable thread = new MinhaThreadRunnable("Thread1", 500); MinhaThreadRunnable thread2 = new MinhaThreadRunnable("Thread2", 900); Thread t1 = new Thread(thread); Thread t2 = new Thread(thread2); t1.start(); t2.start(); } Só que precisamos criar uma thread e passar a classe Runnable criada
  • 6.
    public MinhaThreadRunnable(String nome,int valorAdormecida){ this.nome = nome; this.valorAdormecida = valorAdormecida; new Thread(this).start(); } Ou podemos fazer isso diretamente do construtor
  • 7.
    • Quando fazemosextends da Thread, o único método que precisa ser sobreposto é o run Qual abordagem é melhor?
  • 8.
    • Quando fazemosextends da Thread, o único método que precisa ser sobreposto é o run • Quando implementamos Runnable, também precisamos implementar o método run Qual abordagem é melhor?
  • 9.
    • Quando fazemosextends da Thread, o único método que precisa ser sobreposto é o run • Quando implementamos Runnable, também precisamos implementar o método run • Com a classe Runnable, podemos extender qualquer outra classe Qual abordagem é melhor?
  • 10.
    • Quando fazemosextends da Thread, o único método que precisa ser sobreposto é o run • Quando implementamos Runnable, também precisamos implementar o método run • Com a classe Runnable, podemos extender qualquer outra classe • Se não for sobrepor qualquer outro método da classe Thread, pode ser melhor usar a classe Runnable Qual abordagem é melhor?
  • 11.
  • 12.
  • 13.
    http://loiane.training Fórum para dúvidas+ certificado do curso. Cadastro em:
  • 14.
  • 15.