【发布时间】:2012-11-13 17:00:48
【问题描述】:
我正在寻找针对推送操作进行优化的线程安全 C/C++ 队列实现。我不介意 pop 操作是否阻塞,但我不想在 push 端阻塞。
让我解释一下原因。我计划为 C# 应用程序编写探查器,我将有多个线程将消息推送到单个调度程序线程。我不介意调度程序是否会很快阻塞,但我想避免推送方面的任何延迟。
【问题讨论】:
-
Fober, Orlarey and Letz 有一个通用的多读取器、多写入器非阻塞队列,尽管它具有无锁编程的常见问题,即它无法释放弹出元素的内存。我可以想象,如果你愿意在出队端添加一个锁,你也许可以克服这个问题。如果你只需要一个消费者,那就容易多了。
标签: c++ c thread-safety queue