bonsoir, c'est un problème de synchronisation de plusieurs threads; en effet
- j'ai une ressources critique 'liste bloquante non bornée BlockingQueue "(en réalité moi j'ai besoin d'une file (FIFO)
- plusieurs écriture peuvent se faire à la fois (plusieurs threads peuvent déposer des messages simultanément)
- une seule lecture (un seul thread qui peut lire de cette liste)
- la contrainte principale "une lecture et une écriture peuvent se faire simultanément sur la liste s'il ne s'agit pas de la même case" c.à.d un thread lecture lit (tjrs) la première case et un autre thread peut écrire à la fin de la liste (3 ou 4 eme case) simultanément
j'ai réfléchi à une solution ; faire la méthode receive synchonized mais le pb qui me garantit qu'une lecture ne peut pas se faire dans une case où l'ecriture est en cours?
ma deuxième solution était de faire les deux méthodes (send et receive) synchnozide mais le pb qu'il aura une seul écriture ou lecture à la fois (3 eme contrainte non vérifiée)
comment faire? merci
Partager