Not*_*ded 5 c++ performance producer-consumer
我正在寻找一种单生产者、单消费者 FIFO 实现,它的执行速度比正常的锁定-写入-解锁-信号/waitForSignal-lock-read-unlock 东西更快。我正在寻找用 C 或 C++ 编写的大多数 POSIX 操作系统(特定于 x86 很好)支持的东西。
我不想传递比指针大的任何东西。
我不一定喜欢无锁的想法,但我确实想要一些快速而正确的东西。我读到的一篇关于这个主题的论文提到了一种看起来很有趣的双队列方法,但从那时起我就找不到太多关于它的信息。
从我到目前为止所做的研究来看,0mq(据说它的 inproc:// 方案使用无锁结构)看起来是最有吸引力的选择。话虽如此,我想确保在走上这条路之前我没有错过任何东西。
另一种选择可能涉及使用 POSIX 消息队列,但这对于线程 <--> 线程通信来说似乎相当慢;这是真的?
任何单消费者单生产者无锁队列在 C 中的实现?似乎相关,但接受的答案实际上并没有像“过早优化是不好的”那样枚举现有库。
您将需要查看英特尔的线程构建模块。它们构建在 x86 的用户模式原子操作、pthread 或 Win32 线程提供的原语之上,并提供快速、高效、模板化的数据结构。并发队列就是其中之一。
归档时间: |
|
查看次数: |
4523 次 |
最近记录: |