如何在C ++中使用多线程?

时间:2017-01-17 19:34:34

标签: c++ multithreading

我需要知道如何从一个数字中创建未知数量的线程,这是我的代码:

void callWritePrimesMultipleThreads(int begin, int end, string filePath, int N){
  ofstream file;
  file.open(filePath);
  thread myThreads[N];//cant make it because N isnt a constant value.
}

我真的想过制作一个数组,但我不能,因为我收到的数字对于函数是未知的,有没有办法在这个函数中乘以线程?

1 个答案:

答案 0 :(得分:0)

尝试在函数中使用std::vector

void callWritePrimesMultipleThreads(int begin, int end, string filePath, int N){
  ofstream file;
  file.open(filePath);
  vector<std::thread> myThreads;
}

然后使用push_back(thread t)将线程添加到向量中,如下所示:myThreads.push_back(thread),但是如果这个问题对您来说很难,那么暂时远离线程可能是个好主意,如他们非常复杂化程序。