我目前有以下代码:
using boost::filesystem;
directory_iterator end_iter;
for (directory_iteratory dir_iter("/some/path/"); dir_iter != end_iter; ++dir_iter)
{
functionCall(some_variable, dir_iter);
}
现在,我想并行化for循环。通常这可以通过openmp轻松完成,但目录迭代器使事情变得复杂。我尝试了以下方法,但这不起作用。
using boost::filesystem;
boost::thread_group threads;
directory_iterator end_iter;
for (directory_iteratory dir_iter("/some/path/"); dir_iter != end_iter; ++dir_iter)
{
boost::thread *thread = new boost::thread(functionCall, some_variable, dir_iter);
threads.add(thread);
}
threads.join_all();
所以,这不起作用。什么是正确的方法?