Synchronized en JAVA [Fermé]

Signaler
-
Messages postés
623
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
11 novembre 2012
-
Bonjour,

mon code JAVA est le suivant :

public class Parallelisme implements Runnable{
String number;

public Parallelisme(String number){
this.number=number;
}

public void run(){
synchronized(this){
int i;
for(i=0;i<50;i++)
System.out.println(number+i);
}
}

public static void main(String[] args){
Parallelisme pa=new Parallelisme("Processus 1 :");
Thread th=new Thread(pa);
Parallelisme pa2=new Parallelisme("Processus 2 :");
Thread th2=new Thread(pa2);
th.start();
th2.start();
}

}

je souhaiterais que les deux processus s'executent l'un après l'autre (le 1er puis le 2eme).
J'ai mis le synchronized pour cela, mais en vain.
Que dois je ajouter, svp ?

Merci.

9 réponses

Je voulais dire: METHODE Synchronized en LANGAGE Java.
Quoiqu'il en soit, sauriez vous comment faire, svp ?

Merci.
Essaye :

th.start();
th.join();
th2.start();
j'ai essayé mais j'ai une erreur de compilation:

unhandled exception type InterruptedException

Qu'est ce que cela veut dire ?
Qu'il faut catcher :

try
{
th.start();
th.join();
th2.start();
} catch ( Exception e )
{
}
L'erreur de compilation a disparu, mais le problème des processus simultanés persiste encore. J'ai aussi essayé de mettre un objet en argument à Synchronized à la place de this, mais rien ne change.
Une autre idée, svp ?

Merci.
J'avais un doute mais je viens de tester ton code et avec le join(), les processus s'exécutent bien l'un après l'autre. Heureusement d'ailleurs parce que c'est l'objectif de cette méthode. Le synchronized ne sert pas à ça.

Peux-tu reposter ton code stp ?
c'est bon, c'était une erreur de ma part. j'avais oublié la dernière instruction join()

Maintenant, ça marche nickel.

Merci beaucoup.
Cool.
Y'a pas de quoi :o)
Messages postés
623
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
11 novembre 2012
967
Salut!

Si tu veux que les 2 processus s'exécutent l'un après l'autre, alors tu n'as pas besoin de Runnable/Thread.

Ou alors, c'est qu'il manque un élément dans ta question.

;-)