如何将while循环的每一次迭代都分配给线程
How can i assign every iteration of this while loop to a thread?
这个while
循环的响应时间很长,因此我尝试将它的每一次迭代都分配给一个线程,但我不知道是什么?请回答我:(
string tmp = fr.getNextWord();
while (tmp != "")
{
hf << h->getHash(tmp) << endl;
ENFA * enfa = new ENFA();
* enfa = generateNfaFromString("%s%a_l%a%m%");
if (enfa->accepts(h->getHash(tmp), getHashChar))
{
of << "true" << endl;
} else
{
of << "false" << endl;
}
tmp = fr.getNextWord();
}
- 将循环的内容重新映射到一个单独的函数调用中
- 在循环之外创建一个线程对象的容器(最好包装在未来的对象中)
- 在循环中,创建一个调用函数的新线程。将线程对象(或关联的未来)存储在容器中
- (可选:挠头,想知道为什么响应时间变得更糟)
假设您可以将fr
中的所有单词存储在std::vector
中,则可以尝试使用openmp
std::vector<string> v;
//TODO: loop over `fr` and push_back the words onto `v`
# pragma omp parallel for
for (int i = 0; i < v.size(); ++i) {
//use `v[i]` instead of `tmp` in your code
}
相关文章:
- 在一次迭代中从 txt 文件中读取多行
- 高级选择排序 - 在一次迭代中搜索两个元素
- 在unordered_multimap中精确迭代一次每个键的有效方法
- foor 循环的最后一次迭代中的指针更改
- 循环中本地对象的析构函数是否保证在下一次迭代之前被调用?
- ifstream不会在下一次迭代中打开文件
- C++如何使用lambda表达式来捕获上一次迭代的值
- 如何强制循环执行另一次迭代到零并关闭循环
- 在循环工作时,首先将两个文件读为向量,但仅次于迭代一次
- 迭代一组和擦除元素
- 循环在此代码中仅迭代一次,而在另一个代码中正确迭代
- 臂组件:循环只会迭代一次,然后较低误差
- C :优雅地迭代一组数字
- C++ 迭代一项 - UB 或定义的行为
- 为什么将复制构造器称为25次,而插入循环仅迭代10次
- C++ - 解析文件在最后一行迭代两次
- C++:跟踪代码中的迭代(n次迭代后执行x)/用户输入
- 如何在c++映射中迭代一组特定的键
- 如何在一个完整图的每条边上迭代一次
- For循环不迭代指定次数(少迭代1次)