Поскольку я писал забавный многопоточный код, я столкнулся со следующей ситуацией:
поток запрашивает единицу ресурса из пула памяти, обрабатывает ее и отправляет указатель наэти данные в другой поток для дальнейшей работы с использованием кольцевого буфера (случай 1R / 1W).
Последний должен сообщать первому потоку всякий раз, когда это делается, с данными, которые он получил, чтобы можно было повторно использовать память.
Интересно, будет ли лучше - с точки зрения производительности - реализовать этот "Freelist" в качестве другого циклического буфера - хранящего адреса свободных ресурсов - или выбрать способ стека без блокировки (реализация DCAS на x86-64).
В общем, каковы могут быть плюсы и минусы двух разных подходов?