Utiliser la méthode join                        

Utiliser la méthode join

     

On reprend la classe Ecrivain, mais on voudrait que l'instruction :
    System.out.println("A la montagne");
ne s'effectue qu'après que les trois threads lancées par le programme soient achevées.
On utilise pour cela la méthode join de la class thread.

Lorsque l'instruction :
    r1.join();
s'exécute, il y a une mise en attente du thread en cours d'exécution jusqu'à ce que le thread r1 soit terminée. r1 bloque le thread en cours d'exécution, et celui-ci sera débloquée par la fin de ce thread.
La méthode join peut lancer une exception du type InterruptedException.

class EcrivainJ
{
  public static void main(String[] argv)
    {
      Repetiteur r1,r2,r3;

      r1 = new Repetiteur("soleil");
      r2 = new Repetiteur("neige");
      r3 = new Repetiteur("ski");
      r1.start();
      r2.start();
      r3.start();
      try
	{
	  r1.join();
	  r2.join();
	  r3.join();
	}
      catch(InterruptedException exc) {}
      System.out.println("A la montagne");
    } 
}
On obtient :
soleil  
neige  
ski    
ski 
soleil  
neige 
A la montagne

Le fichier EcrivainJ.java et le fichier Repetiteur.java.


© Irène Charon, Télécom ParisTech 2011