Tengo algunos problemas para comprender la idea de una cola simultánea. Entiendo que una cola es una estructura de datos FIFO o primer llegado primer servido.concurrent queue - pregunta general (descripción y uso)
Ahora cuando agregamos la parte de simultaneidad, que interpreto como seguridad de subprocesos (por favor, avíseme si es incorrecta), las cosas se ponen un poco borrosas. Por concurrencia nos referimos a la forma en que varios hilos pueden agregarse a la cola, o eliminar (dar servicio a un elemento) de la cola. ¿La simultaneidad proporciona una sensación de orden a estas operaciones?
Agradecería mucho una descripción general de la funcionalidad de una cola simultánea. Una publicación similar here no es tan general como esperaba.
También existe tal cosa como una cola de prioridad concurrente? ¿Cuál sería su uso?
Muchas gracias de antemano, por cualquier breve explicación o enlaces útiles sobre este tema.
Adquirir un bloqueo para modificar una implementación de Queue segura para subprocesos agrega poca sobrecarga y todas las implementaciones de BlockingQueue dentro del paquete java.util.concurrent usarán al menos un bloqueo (algunos usan dos para poner/tomar). Sin bloqueos, los productores/consumidores no pueden realizar bloqueos de puts/takes y las operaciones masivas (por ejemplo, drainTo) no se pueden realizar atómicamente. – Adamski
Pensé que Java usa colas sin bloqueo: http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html – Steve