Funciones para Queue en Python
September 6, 2023
Encontré dos bibliotecas de python que implementan colas (queue), estas son “collec-
tions” y “queue”. Chatgpt me mostro la siguiente información:
Estas bibliotecas tienen propósitos ligeramente diferentes, aunque ambos se utilizan
para trabajar con colecciones de datos. Aquı́ está la diferencia clave entre ellos:
collections:
• La biblioteca collections es un módulo que proporciona una variedad de tipos de
datos contenedores especializados y utilidades para manejar colecciones de datos de
manera eficiente.
• Incluye tipos de datos como namedtuple, Counter, deque, y defaultdict, entre otros.
• collections se centra en proporcionar estructuras de datos de alto rendimiento para
diversas necesidades, pero no necesariamente para la administración de colas y tareas
concurrentes.
queue:
• El módulo queue también es parte de la biblioteca estándar de Python, pero se
enfoca especı́ficamente en proporcionar implementaciones de colas (queues) para la
programación concurrente y multihilo.
• Incluye clases como Queue, LifoQueue, y PriorityQueue, que son útiles para la
comunicación y coordinación entre hilos y procesos en aplicaciones concurrentes.
• queue se utiliza principalmente para situaciones en las que necesitas sincronizar el
acceso a datos compartidos entre múltiples hilos o procesos, y garantizar que no
ocurran problemas de concurrencia, como la condición de carrera.
Funciones del objeto [Link]:
• append(x): Agrega el elemento x al final de la cola.
• appendleft(x): Agrega el elemento x al principio de la cola.
• extend(iterable): Extiende la cola agregando elementos desde un iterable al final.
1
• extendleft(iterable): Extiende la cola agregando elementos desde un iterable al
principio.
• pop(): Elimina y devuelve el último elemento de la cola.
• popleft(): Elimina y devuelve el primer elemento de la cola.
• rotate(n): Rota los elementos de la cola n lugares hacia la derecha si n es positivo,
o hacia la izquierda si n es negativo.
• remove(x): Elimina la primera ocurrencia del elemento x en la cola.
• count(x): Cuenta el número de ocurrencias del elemento x en la cola.
• clear(): Elimina todos los elementos de la cola, dejándola vacı́a.
Funciones del objeto [Link]:
• put(item[, block[, timeout]]): Este método se utiliza para agregar un ele-
mento item a la cola. Si block es True (valor predeterminado), el método se
bloqueará hasta que haya espacio en la cola para agregar el elemento. timeout es el
tiempo máximo en segundos para esperar antes de elevar una excepción [Link]
si block es True. Si block es False, el método intentará agregar el elemento a la
cola, pero si no hay espacio, elevará una excepción [Link] inmediatamente.
• get([block[, timeout]]): Este método se utiliza para obtener y eliminar el ele-
mento más antiguo de la cola. Si block es True (valor predeterminado), el método se
bloqueará hasta que haya elementos en la cola para obtener. timeout es el tiempo
máximo en segundos para esperar antes de elevar una excepción [Link] si
block es True. Si block es False y la cola está vacı́a, el método elevará una
excepción [Link] inmediatamente.
• empty(): Devuelve True si la cola está vacı́a, False en caso contrario.
• full(): Devuelve True si la cola está llena, False en caso contrario.
• qsize(): Devuelve la cantidad de elementos actualmente en la cola.
• put nowait(item): Similar a put(), pero no bloquea. Intenta agregar el elemento
a la cola y, si no hay espacio, elevará una excepción [Link] de inmediato.
• get nowait(): Similar a get(), pero no bloquea. Intenta obtener el elemento más
antiguo de la cola y, si la cola está vacı́a, elevará una excepción [Link] de
inmediato.
2
• task done(): Se utiliza en combinación con colas de tareas (como [Link]
en el módulo queue). Marca una tarea como completada. Esto se utiliza general-
mente en aplicaciones de productor-consumidor para indicar que una tarea se ha
completado.
• join(): Bloquea hasta que todas las tareas en la cola hayan sido marcadas como
completadas utilizando task done(). Se usa junto con task done() en aplicaciones
de productor-consumidor.