0
根据this code,我试图做一个简单的多线程程序,其中在输入参数中确定线程数为num_threads
,并且这些线程必须使用给定的输入参数调用相同的方法。在C++中使用向量进行多线程操作
num_items > num_threads
由于重新定义thread_id
(尽管所有线程在使用后都被连接),问题就出现了。有谁知道我失败的位置?
vector<thread> thread_id;
int it = num_items/num_threads + (num_items%num_threads != 0);
for(int i = 0; i < it; i++){
for(int j = 0; j < num_threads; ++j)
thread_id.push_back(thread(method1, "parameter", i*num_threads + j));
for(auto& t : threadId)
t.join();
}
错误代码如下:
terminate called after throwing an instance of 'std::system_error'
what(): Invalid argument
基本计数错误。想想你有多少次循环。 –