将boost::lockfree与c+一起使用是否安全+;11线程支持库? 我现在有一个用C++ 11线程支持库编写的代码:

将boost::lockfree与c+一起使用是否安全+;11线程支持库? 我现在有一个用C++ 11线程支持库编写的代码:,c++,multithreading,boost,c++11,lock-free,C++,Multithreading,Boost,C++11,Lock Free,我想知道将该代码与boost::lockfree混合使用是否安全 也就是说,我希望多个C++11 std::线程同时访问boost::lockfree::queue。用boost::thread替换C++11线程可能会更安全,但如果我能最大限度地减少代码更改,那就太好了。我目前正在使用无锁队列和std::thread实现线程池,但我使用的是Joe Seigh原子队列算法,而不是boost版本。我看不出boost版本有什么不好的地方,我已经检查了源代码,它对我来说似乎是一个很好的实现。我目前正在自

我想知道将该代码与boost::lockfree混合使用是否安全


也就是说,我希望多个C++11 std::线程同时访问boost::lockfree::queue。用boost::thread替换C++11线程可能会更安全,但如果我能最大限度地减少代码更改,那就太好了。

我目前正在使用无锁队列和std::thread实现线程池,但我使用的是Joe Seigh原子队列算法,而不是boost版本。我看不出boost版本有什么不好的地方,我已经检查了源代码,它对我来说似乎是一个很好的实现。

我目前正在自己使用无锁队列和std::thread实现线程池,但是我使用的是Joe Seigh原子队列算法,而不是boost版本。我看不出boost版本有什么不好的地方,我已经检查了源代码,它对我来说似乎是一个很好的实现。

一个简短的答案是“可能”:我所知道的每个无锁数据结构和算法都不像依赖处理器原语那样依赖线程模型的细节。一个很长的答案是“不知道”,因为这可能取决于您的语言中的某种深层魔力和增强实现。在缺乏并发原语(如CAS)的平台上,您可以想象通过一些非常疯狂的方式实现一堆东西,然后选择不同的疯狂方式。您是否在相对标准的硬件上编程?可移植性是否值得关注?如果是的话,你就冷用它。如果开发是在Windows上进行的,那么您可以使用并行模式库。简短的回答是“可能”:我知道的每个无锁数据结构和算法都不像依赖处理器原语那样依赖线程模型的细节。一个很长的答案是“不知道”,因为这可能取决于您的语言中的某种深层魔力和增强实现。在缺乏并发原语(如CAS)的平台上,您可以想象通过一些非常疯狂的方式实现一堆东西,然后选择不同的疯狂方式。您是否在相对标准的硬件上编程?可移植性是否值得关注?如果是的话,你就冷用它。如果开发是在Windows上进行的,则可以使用并行模式库。