Я ищу потокобезопасный бесконечный блокирующий fifo, который поддерживается фиксированным буфером, таким как массив. Семантика будет заключаться в том, что несколько потоков чтения и записи могут безопасно получить к нему доступ. Модули записи блокируются, если буфер заполнен, и перезаписывают самый старый элемент. Читатели блокируются, если буфер пуст. Порядок FIFO должен поддерживаться, когда счетчик общего количества добавленных и удаленных элементов один или несколько раз обернулся вокруг размера внутреннего буфера.
Интересно, что обычные места, которые я искал бы для этого (собственные параллельные коллекции Java, коллекции общих ресурсов, гуава), не видят мгновенного ответа на такое «очевидное» требование.