De los JavaDocs:
- Un ConcurrentLinkedQueue es una opción apropiada cuando muchos hilos compartirán el acceso a una colección común. Esta cola no permite elementos nulos.
- ArrayBlockingQueue es un clásico "búfer acotado", en el que una matriz de tamaño fijo contiene elementos insertados por productores y extraídos por los consumidores. Esta clase admite una política de equidad opcional para ordenar hilos de productores y consumidores en espera
- LinkedBlockingQueue generalmente tiene un mayor rendimiento que las colas basadas en matrices, pero un rendimiento menos predecible en la mayoría de las aplicaciones concurrentes.
Tengo 2 escenarios, uno requiere la cola para apoyar a muchos productores (hilos que lo usan) con un consumidor y el otro es al revés.
No entiendo qué implementación usar. ¿Alguien puede explicar cuáles son las diferencias?
Además, ¿cuál es la "política de equidad opcional" en el ArrayBlockingQueue
?