Мне нужна структура, в которой я смогу использовать pop() и add() с правой стороны (точно так же, как deque), при этом структура будет блокироваться и ждать, если она пуста (точно так же, как Queue). Я мог бы напрямую использовать очередь, но мне также нужна удобная функция дека, при которой элементы удаляются без блокировки, если структура заполнена.
Код: Выделить всё
from collections import deque
d = deque(maxlen=2)
d.append(1)
d.append(2)
d.append(3) # d should be [2,3] (it is the case)
d.pop()
d.pop()
d.pop() # should wait (not the case)
Что лучше — создать подкласс deque (заставить его ждать) или Queue (добавив функцию popLeft)?
Подробнее здесь:
https://stackoverflow.com/questions/568 ... n-a-thread