我有一个RingBuffer,它为一个消费者和一个生产者提供服务,并使用两个整数来检测新数据:_lastReadIndex_lastWrittenIndex所以当这两个值不相等时,ringbuffer中有未读数据。当一个项目被添加到环形缓冲区时,生产者递增(和循环缓冲区大小的模数)_lastWrittenIndex。消费者自旋,读取两个值,检查新数据,当有新数据时,它将递增(和模数)_lastReadIndex。三个突出显示的术语强调了关于多线程和内存屏障的要求。考虑到Intel的内存模型,我可以将此设计的内存排序放宽到什么程度?我相信英特尔的内存模型允许加载与早期存储重新排序到不同的