Вот есть CircularFifoBuffer.
Его можно обернуть в BufferUtils.synchronizedBuffer(), тогда он будет синхронизованным, но, как я понимаю, не будет lock-free?
Возможно ли его сделать lock-free (CAS, как в AtomicInteger.incrementAndGet(), только здесь будет что-то вроде addAndRemove())?
Правильно ли я понимаю, что невозможно сделать атомарной операцию удаления одного элемента + добавление другого?