我的问题:如果我使用“只读”const_accessors,为什么我的程序会冻结?
它似乎被锁定了,从 API 描述来看,拥有一个访问器和多个 const_accessors 似乎是可以的,(作者,阅读器)。也许有人可以告诉我一个不同的故事。
我试图实现的目标是使用这个并发哈希映射并使其可用于 10-200 个线程,以便它们可以查找和添加/删除信息。如果您有比我正在使用的当前解决方案更好的解决方案,那么您也欢迎发布替代方案。
tbb::size_t hashInitSize = 1200000;
concurrent_hash_map<long int,char*> hashmap(hashInitSize);
cout << hashmap.bucket_count() << std::endl;
long int l = 200;
long int c = 201;
concurrent_hash_map<long int,char*>::accessor o;
concurrent_hash_map<long int,char*>::const_accessor t;
concurrent_hash_map<long int,char*>::const_accessor h;
cout << "Trying to find 200 "<< hashmap.find(t,200) << std::endl;
hashmap.insert(o,l);
o->second = "testother";
TBB 社区教程指南第 43 页描述了访问器的概念