Bonjour
J'essaye de faire un tableau de verrous Lock comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
	final Lock mesLock[]=new ReentrantLock[100] ;
 
	int i=0;
	for( i=0;i<100;i++)
	{
	    Lock mesLock[i] =  new ReentrantLock();
	}
mais le mesLock dans la boucle for ainsi que le i sont surligné en rouge. Le code passe pas.

Pour explication de ce tableau, je crée dans une classe n objets ( de 1 à 10 par ex) qui tournent chacun dans un Thread et cahque objet à 2 Lock, V1 et V2.
V1 dit qu'il travaille. V2 dit qu'il a recu l'info de l'object n-1.
L'object 1 lock le verrou1 (V1.lock()) qui est lu par l'object 2 qui se trouve donc arrété et qui à en // lock son V2 par V2.lock().
Quand l'object 1 fini sont travail, il débloque V1 par V1.unlock(). mais est bloqué sur V2 de l'object 2.
Le 2, plus bloqué par le V1 de l'object n-1 reprend, et informe par son V2.unlocl() l'object 1 de reprendre, celui-ci reprend son travail.
Et ainsi de suite, production, consomation....

Mais il se trouve que l'object 3 bloqué sur le verrou du 1 alors qu'il n'est en liaison que sur le 2 normalement.
Que ce passe t-til ? C'est comme si les verrou de l'object 3 bloquaient l'object 3

J'ai donc voulue pour être sur de l'indépendance de mes verrous créer ce tableau de Lock et d'en envoyer le 0 et 1 à l'object 1, le 2 et 3 à l'object 2...

Merci par avance.