gpt4 book ai didi

c++ - 在 tbb 中正确使用访问器

转载 作者:行者123 更新时间:2023-11-30 02:47:11 24 4
gpt4 key购买 nike

我有一个要插入到 tbb 的并发 HashMap 中的项目列表。访问器的正确使用方法是什么,方法 1 还是方法 2?

// way 1
for (a list of (keys,values))
{
MAP::accessor a;

myHashTable.insert(a, key);
(a->second).push_back(value);

a.realease();
}

// way 2

MAP::accessor a;

for (a list of (keys,values))
{
myHashTable.insert(a, key);
(a->second).push_back(value);

a.realease();
}

最佳答案

基本上都是,因为您显式调用了 accessor::release()。但一般来说,从代码质量的角度来看,我会将锁定的范围限制在最小的必要区域,因为代码可能会以意想不到的方式进一步扩展或/和异常安全可能成为问题。

没有显式释放的第三种方式是:

// way 3
for (a list of (keys,values))
{
MAP::accessor a;

myHashTable.insert(a, key);
(a->second).push_back(value);
}

附言尽可能避免在串行代码中使用访问器,例如使用 insert(value_type) 形式。这将有助于减少线程安全的开销

关于c++ - 在 tbb 中正确使用访问器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22898786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com