Мне нужна структура данных, которая реализует API java.util.Deque<>
, но ведет себя следующим образом:
- очередь может содержать как "заблокированные", так и "разблокированные" элементы
- при
poll()
вызывается: - первый разблокированный элемент возвращается немедленно
- , когда очередь пуста, null возвращается немедленно
- , если очередь не пуста, но все элементы«заблокированы», блоки
poll()
до тех пор, пока либо - не останется больше элементов в очереди, либо
- элемент не будет разблокирован
Под "заблокированными" я думаю, что встроенная блокировка Java (объектный монитор), но я могу принять что-то еще.
Существует ли это?