我正在寻找针对推送操作进行优化的线程安全 C/C++ 队列实现。我不介意弹出操作是否阻塞,但我希望永远不会在推送端阻塞。
让我解释一下为什么。我计划为 C# 应用程序编写探查器,我将有多个线程将消息推送到单个调度程序线程。我不介意调度程序是否会很快阻塞,但我想避免推送方面的任何延迟。
我正在寻找针对推送操作进行优化的线程安全 C/C++ 队列实现。我不介意弹出操作是否阻塞,但我希望永远不会在推送端阻塞。
让我解释一下为什么。我计划为 C# 应用程序编写探查器,我将有多个线程将消息推送到单个调度程序线程。我不介意调度程序是否会很快阻塞,但我想避免推送方面的任何延迟。
您可以使用boost.lockfree。它在 boost 沙箱 svn 中,计划在 1.53 或 1.54 版本中与 boost 一起发布,具体取决于 boost.atomic 是否及时发布。目前 boost.lockfree 依赖于 std::atomic 而不是 boost.atomic,所以你需要一个 c+11 编译器来使用它。