Skip to content

MPMC Ring Buffer

本目录收录多生产者多消费者(Multi-Producer Multi-Consumer, MPMC)无锁环形缓冲区的 C++ 实现,使用 std::atomic 与 cache-line padding 避免伪共享。

文件清单

文件内容
mpmc_ringbuffer.h头文件实现(单头文件包含)
test.cc简单的多线程功能测试

设计要点

  • 无锁:基于 std::atomiccompare_exchange_weak
  • 避免伪共享:使用 alignas(64) 进行 cache-line 对齐
  • 定长容量:使用模运算实现循环索引

使用示例

cpp
#include "mpmc_ringbuffer.h"
MPMCRingBuffer<int, 1024> rb;
// 生产
rb.enqueue(42);
// 消费
int v;
if (rb.dequeue(v)) { /* got v */ }

编译与运行

bash
g++ -std=c++17 -pthread test.cc -o test
./test

基于 VitePress 构建