gpt4 book ai didi

C++ PPL - 初始化可组合

转载 作者:行者123 更新时间:2023-11-28 08:05:30 29 4
gpt4 key购买 nike

假设在封闭范围内,我有一些变量,parallel_for 循环中的每个线程都应该访问这些变量。我有一个 combinable 适合的想法,在每个线程中制作我的变量的一个拷贝。但是,我不明白如何初始化我的可组合的东西:

例如,我想使用 QString 公式的拷贝。我为每个线程中复制的东西创建了一个可组合的状态:

 combinable<QString> formulaRx;

那我应该写:

parallel_for(0,p,[&formulaRx, formula](int i)
{
formulaRx.local() = formula;

// do things

});

?这会解决问题,还是仍然可以并发访问该行

 formulaRx.local() = formula;

处理这个问题的正确方法是什么?

如果不清楚请告诉我

感谢和问候

最佳答案

您不需要分配 formulaRx.local()。 这是可组合对象的本地拷贝的 getter。

parallel_for(0,p,(int i)
{
QString f = formulaRx.local();

// do things with f which is the local copy of formulaRx

});

关于C++ PPL - 初始化可组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10385991/

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