Bonjour,

J'ai un petit problème avec la programmation concurrente en Java.

Je dois réaliser le problème classique du producteur/consommateur, cependant il possède une variante avec des données urgente :

Les producteurs "Urgent" produisent des données urgentes dans un tampon urgent (d'une taille fixée) ; les producteurs normaux produisent des données normales dans un tampon normal (d'une taille fixée).
Les Consommateur normal consomme les données présentes dans le tampon normal. Les consommateurs "Urgent" consomment les données du tampon urgent et les données du tampon normal. Cependant il consomme en priorité les données urgentes.

Lorsque le tampon est plein, les producteur "attendent" , grâce à l'API "java.util.concurrent.locks", que les consommateurs consomme des données du tampon "plein".
Lorsque le tampon est vide, les consommateurs "attendent", grâce à la même API, que les producteurs produisent des données dans le tampon.

Le problème qui survient est lorsque le tampon urgent et le tampon normal sont vides, je dois faire attendre mon consommateur urgent qu'une donnée arrive dans l'un des 2 tampons. Mais comment le faire attendre sans prioriser un certain tampon par rapport à un autre, et sans faire d'attente active ?


Je vous remercie d'avoir pris le temps de lire mon problème



PS : je m'excuse si je n'ai pas posté la discussion au bon endroit