任何人都有关于线程安全数据容器的想法,比如queue,map? 当我们使用/ MT开关进行编译时,我不想要线程安全的STL。
真正的线程安全测试STL容器。
答案 0 :(得分:9)
线程安全容器通常没有任何意义。考虑一个'线程安全'队列:
if(!qu.empty())
{
// 1
qu.pop();
}
如果队列被修改并且变空,那该怎么办?它破坏了代码。这就是为什么你应该在你的代码而不是'线程安全'容器中使用锁。
答案 1 :(得分:1)
Intel TBB专为此而设计。
答案 2 :(得分:1)
/ MT意味着您希望链接到多线程运行时库(与多线程应用程序兼容),但它不会使运行时库是线程安全的。
答案 3 :(得分:0)
Microsoft并行模式库(PPL)包括concurrent_vector
和concurrent_queue
,他们添加了unordered_map
,unordered_multimap
,unordered_set
和{{的并发版本1}}到并发运行时样本包v0.33和更新。