【发布时间】:2015-07-31 09:17:30
【问题描述】:
晚上好,我发现这个错误已经好几个小时了,我找到了很多解决方案,但它们都不起作用。
C_t 是向量的向量,它的大小是 100。如果循环一直到 8,它可以工作,但是当我增加它时,就会抛出错误。
f 是保存 C_t 求值的向量。
func 是函数的种类。
int nThreads = thread::hardware_concurrency(); // # threads
vector<thread> ths(nThreads); // threads vector
cout << ths.size() << endl;
//Launching threads
int idx = 0;
for ( int i = 0 ; i < 10 ; i++ ){
ths[idx] = thread( parallel_eval, ref(f[i]) , ref(C_t[i]) , func);
// idx = idx != nThreads ? idx++:0;
if(idx != nThreads){
idx++;
}
else{
idx = 0;
}
// std::this_thread::sleep_for(std::chrono::milliseconds(1000));
}
//Joining threads
for ( int i = 0; i < nThreads; i++ ){
ths[i].join();
}
【问题讨论】: