Управление очередью и организация процессов на Queue
Queue (очередь) - это структура данных, которая обычно представляет собой список элементов, который можно рассматривать как коллекцию элементов, основным принципом работы которой является FIFO (первым пришел - первым вышел).
Элементы в очереди добавляются в конец списка. Каждый раз, когда необходимо удалить элемент, он удаляется из начала списка, таким образом, очередь всегда оставляет первые добавленные элементы в конце списка, а последние добавленные элементы в начале списка.
В Python очередь может быть реализована с помощью стандартной библиотеки Queue. Пример создания и работы с очередью:
python
import queue
q = queue.Queue() # создание объекта очереди
# добавление элементов в очередь
q.put('A')
q.put('B')
q.put('C')
# получение элементов из очереди
print(q.get()) # выводит 'A'
print(q.get()) # выводит 'B'
print(q.get()) # выводит 'C'
# проверка, является ли очередь пустой
print(q.empty()) # выводит True
Также в Python есть deque - библиотека, расширяющая функциональность очереди и позволяющая добавлять и удалять элементы с обеих сторон. Пример реализации deque:
python
from collections import deque
dq = deque() # создание объекта deque
# добавление элементов в очередь
dq.append('X') # добавление элемента справа
dq.appendleft('Y') # добавление элемента слева
# вывод элементов
print(dq[0]) # выводит первый элемент
print(dq[-1]) # выводит последний элемент
# удаление элементов
print(dq.pop()) # вывод и удаление последнего элемента
print(dq.popleft()) # вывод и удаление первого элемента
# проверка, является ли deque пустым
print(dq) # вывод оставшихся элементов в deque после удаления
print(len(dq)) # вывод количества оставшихся элементов в deque