De Javadoc:implementaciones de Java Queue, ¿cuál?
- Un ConcurrentLinkedQueue es una opción apropiada cuando muchos hilos comparten el acceso a una colección común. Esta cola no permite elementos nulos.
- ArrayBlockingQueue es un clásico "buffer delimitado", en el que una matriz de tamaño fijo contiene elementos insertados por los 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 suelen tener un rendimiento mayor que las colas basadas en matrices, pero un rendimiento menos predecible en la mayoría de las aplicaciones simultáneas.
Tengo 2 escenarios, uno requiere la cola para admitir a muchos productores (hilos que lo usan) con un consumidor y el otro es al revés.
No entiendo si debo usar ConcurrentLikedQueue
o los demás (las implementaciones array o linkedList). ¿Dónde se supone que todas estas implementaciones son concurrentes? Quiero decir, ¿alguien puede explicarme cuál es la diferencia entre ConcurrentLikedQueue
y LinkedBlockingQueue
?
Además, ¿cuál es la política de equidad opcional en el ArrayBlockingQueue
por favor?
¿Estás seguro de que esta debería ser una wiki de la comunidad? Estas preguntas parecen tener una respuesta definitiva. Podría estar equivocado ... –
@ Adam, gracias, estás correcto, normalmente lo dejé como comunidad wiki porque vi gente corrigiendo mi inglés ya que normalmente no está bien. Pero ahora parece que el sitio no me permite deshacer la casilla 'community wiki' –
@David: las personas aún pueden editar su pregunta, incluso si no es una wiki de la comunidad. Cuando una pregunta es una wiki de la comunidad, ninguna de las personas que responde gana puntos de reputación (incluso si otros votan las respuestas). Espero que esto aclare las cosas para el futuro. :) –