В чём разница между queue и deque в collections
Python
Senior
Без компании
В чём разница между queue и deque в collections
Ответы
`queue.Queue` и `collections.deque` служат разным целям, хотя оба связаны с очередями.
**`collections.deque`** – это двусторонняя очередь, оптимизированная для быстрого добавления/удаления элементов с обоих концов (O(1)). Подходит для стеков, очередей и других структур данных.
```
from collections import deque
d = deque()
d.append(1) # [1]
d.appendleft(2) # [2, 1]
d.pop() # удаляет 1
```
**`queue.Queue`** – потокобезопасная очередь, предназначенная для многопоточного программирования. Она блокирует потоки при попытке получить элемент из пустой очереди.
```
from queue import Queue
q = Queue()
q.put(1)
q.get() # вернёт 1, если очередь пуста – блокируется
```
**Итог:**
- `deque` – быстрая неблокирующая структура для однопоточных задач.
- `Queue` – потокобезопасная очередь для многопоточности.