Citation Envoyé par KnowPart Voir le message
J'ai aussi un souci a propos de la taille du queue spécifié en début.
Quel est le problème de spécifier une taille à l'initialisation de ta Queue ?

Citation Envoyé par KnowPart Voir le message
est ce que je peux déclarer un BlockingQueue sans spécifié sa taille.
Si tu veux vraiment ne pas avoir à préciser de taille, tu as plusieurs solutions :
  1. Choisir une implémentation de BlockingQueue qui n'a pas de taille spécifique
    • DelayQueue : Tu as une contrainte supplémentaire qui consiste a ce que les éléments de ta queue implémente l'interface Delayed afin qu'il puisse être supprimé automatiquement au bout d'un certain temps.
    • LinkedBlockingQueue : Taille max fixé à Integer.MAX_VALUE. Tu as le temps de voir venir mais ce n'est pas impossible d'atteindre la limite.
    • SynchronousQueue : L'ajout d'un element est bloquant si la queue n'est pas vide (un peu comme si la taille était limité a 1)
  2. Créer toi même une implémentation de BlockingQueue qui n'aura pas de limite. Mais tu risque d'avoir le problème dont tchize_ parlait : si la queue ne fait que grossir, tu va saturer la mémoire et tu risque d'aller droit dans le mur.

Personnellement, je te conseillerai l'une des deux premières implémentations si tu ne veux pas préciser de taille.
Le choix dépend beaucoup de si tu peux te permettre de perdre les "vieux" éléments qui traîne dans la queue ou pas.