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
基本計數錯誤。想想你有多少次循環。 –