我读的越多,我变得越困惑......我会认为找到一个在c ++中实现的正式正确的mpsc队列是微不足道的.
每当我发现另一次刺痛时,进一步的研究似乎表明存在诸如ABA或其他微妙的竞争条件之类的问题.
许多人都在谈论垃圾收集的必要性.这是我想要避免的.
那里有一个公认的正确的开源实现吗?
假设我们有一个共享队列(使用数组实现),两个线程可以访问,一个用于从中读取数据,另一个用于向其写入数据.现在,我遇到了同步问题.我正在使用Win32 API(EnterCriticalSection等)实现这一点.
但我的好奇心是队列的入队和出队操作中的关键部分代码是什么?
仅仅因为,两个线程正在使用共享资源?为什么我无法看到任何问题:前端和后端都被维护,因此,当ReaderThread读取时,它可以从前端读取,当WriterThread写入时,它可以轻松写入后端.
可能会出现哪些潜在问题?