Je souhaite creer 2 threads. Un affiche une valeur et l'autre l'incrémente.
Seulement je veux qu'a chaque boucle la valeur prise soit la valeur actuelle et pas la valeur passée en paramètre à l'appel des threads au début.

j'ai écrit le programme suivant qui fait tourner 2 threads. Chacun travaille indépendemment. Pouvez vous me dire les modifications à apporter pour qu'il y ait un partage de ressources merci

thread1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class classe1 implements Runnable{
 
public void run(){		
 
		int valeur;
 
		for(;;)
			{
 
			System.out.println("thread1: " + valeur);
			valeur ++;
         try{Thread.sleep (5000);}
			catch (InterruptedException e) { }
 
			}	
		}
thread2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
public class classe2 implements Runnable{
 
     public void run(){
 
	int valeur = 0;
 
	for(;;)
		{
      Conversation.append("\n" + " thread2: " + valeur);
      try{Thread.sleep (5000);}
		catch (InterruptedException e) { }
		}	
	}
et le main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public static void main(String[] args) throws IOException {
 
               classe1 c1= new classe1();
               classe2 c2 = new classe2();
               new Thread(c1).start();
               new Thread(c2).start();
               }
il me faudrait surement un main du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public static void main(String[] args) throws IOException {
 
               int valeur = 0;
               classe1 c1= new classe1(valeur);
               classe2 c2 = new classe2(valeur);
               new Thread(c1).start();
               new Thread(c2).start();
               }
mais je n'arrive pas à passer de paramètre à la méthode run et je ne sais pas comment faire pour qu'à chaque boucle, la valeur prise soit celle qui circule entre les threads et pas celle de départ.
Si cela marche il y a t-il des risques de conflits à l'accès. g vu dans des cours sur le net l'emploi de Synchronized. Comment vérouiller l'acces pour que lorsque le thread 1 incrémente la valeur, le thread2 n'essaye pas d'afficher. merci de vos réponses.