Join() example

O código abaixo atachou a Thread Main ao final da Thread 1 (na linha t1.join()). Por isso a ordem no output saiu correta, ou seja, não se misturou Counter 1 com Counter 2 e Counter 3.

 
 

 
 

import java.lang.Thread;

import java.lang.Runnable;

 
 

public class JoinTest {

public static void main(String args[]){

Count c1 = new Count(“Counter1”);

Count c2 = new Count(“Counter2”);

Count c3 = new Count(“Counter3”);

Thread t1 = new Thread(c1);

Thread t2 = new Thread(c2);

Thread t3 = new Thread(c3);

 
 

t1.start();

 
 

try {

t1.join();

// com a instrução t1. join(), a thread ‘main’ só volta a executar depois que a thread ‘t1’ terminar.

} catch (InterruptedException e) {

e.printStackTrace();

}

 
 

System.out.println(“\tApós join()”);

t2.start();

 
 

try {

t2.join();

// com a instrução t2. join(), a thread ‘main’ só volta a executar depois que a thread ‘t2’ terminar.

} catch (InterruptedException e) {

e.printStackTrace();

}

 
 

System.out.println(“\tApós join()”);

t3.start();

}

}

 
 

class Count implements Runnable{

private String name;

public Count(String name){

this.name = name;

}

@Override

public void run() {

for (int i = 0; i < 501; i++) {

if (i % 100==0){

System.out.println(this.name + ” – “+ i);

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}

 
 

Output:

Counter1 – 0

Counter1 – 100

Counter1 – 200

Counter1 – 300

Counter1 – 400

Counter1 – 500

Após join()

Counter2 – 0

Counter2 – 100

Counter2 – 200

Counter2 – 300

Counter2 – 400

Counter2 – 500

Após join()

Counter3 – 0

Counter3 – 100

Counter3 – 200

Counter3 – 300

Counter3 – 400

Counter3 – 500

 
 

 
 

 
 

Anúncios
Esta entrada foi publicada em Threads com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s