import queue q = queue.SimpleQueue()
SimpleQueue
простой очереди.Класс SimpleQueue()
модуля queue
представляет собой конструктор для простой неограниченной очереди FIFO.
В простых очередях FIFO отсутствует расширенная функциональность, такая как отслеживание задач.
SimpleQueue
:SimpleQueue.qsize()
,True
, если очередь пуста SimpleQueue.empty()
,SimpleQueue.put()
,SimpleQueue.put_nowait()
,SimpleQueue.get()
,SimpleQueue.get(False)
SimpleQueue.get_nowait()
,queue.SimpleQueue()
.SimpleQueue.qsize()
:Метод SimpleQueue.qsize()
возвращает примерный размер очереди.
Обратите внимание, что SimpleQueue.qsize() > 0
не гарантирует, что последующий метод SimpleQueue.get()
не будет блокироваться.
SimpleQueue.empty()
:Метод SimpleQueue.empty()
возвращает True
, если очередь пуста, иначе False
.
Если SimpleQueue.empty()
возвращает False
, это не гарантирует, что последующий вызов метода SimpleQueue.get()
не будет блокирован.
SimpleQueue.put(item, block=True, timeout=None)
:Метод SimpleQueue.put()
размещает элемент item
в очереди.
Метод никогда не блокируется и всегда завершается успешно за исключением потенциальных ошибок низкого уровня, таких как сбой при выделении памяти. Необязательные аргументы block
и timeout
игнорируются и предоставляются только для совместимости с объектами потокобезопасных очередей Queue.put()
.
Детали реализации CPython: этот метод имеет реализацию C
, которая является реентерабельной. То есть вызов SimpleQueue.put()
или SimpleQueue.get()
может быть прерван другим вызовом SimpleQueue.put()
в том же потоке без блокировки или повреждения внутреннего состояния в очереди. Это делает его подходящим для использования в деструкторах, таких как методы __del__
или в слабых ссылках модуля weakref
.
SimpleQueue.put_nowait(item)
:Метод SimpleQueue.put_nowait()
эквивалентен SimpleQueue.put(item)
и предоставляется для совместимости с Queue.put_nowait()
.
SimpleQueue.get(block=True, timeout=None)
:Метод SimpleQueue.get()
удаляет и возвращает элемент из очереди.
Если необязательный аргумент block=True
, а время ожидания timeout=None
(по умолчанию), то при необходимости метод блокируется, пока элемент не станет доступен.
Если тайм-аут timeout
является положительным числом, то он блокируется не более timeout
секунд и вызывает исключение queue.Empty
, если в течение этого времени не было доступно ни одного элемента. В противном случае (block=False
) возвратит элемент очереди, если он сразу доступен, или вызовет исключение queue.Empty
(в этом случае timeout
игнорируется).
SimpleQueue.get_nowait()
:Метод SimpleQueue.get_nowait()
эквивалентен вызову SimpleQueue.get(False)
.
queue.SimpleQueue()
:>>> import queue >>> q = queue.SimpleQueue() >>> [q.put(i) for i in range(5, 11)] >>> q.get() # 5 >>> q.put(1) >>> q.get() # 6 # размер оставшейся очереди >>> q.qsize() # 5 >>> while not q.empty(): ... print(q.get(), end=' ') # 7 8 9 10 1