主线程比其他线程慢

时间:2018-08-03 18:24:09

标签: multithreading c++11

我有一个C ++多线程程序。我想知道为什么主线程进行了部分计算,所以(在我的测试中)主线程总是比其余线程慢几秒钟。 (为了进行比较,其他线程在9秒内运行,主线程在11秒内运行。)

如果我不将主线程用于部分计算,则所有线程大约在同一时间完成。即:

int numThreads = 4;
std::thread *threads = new std::thread[numThreads];

for (int i = 0; i < numThreads; i++){
   threads[i] = std::thread(func)
}

for (int i = 0; i < numThreads; i++){
    threads[i].join();
}

vs

int numThreads = 4;
std::thread *threads = new std::thread[numThreads - 1];

for (int i = 0; i < numThreads-1; i++){
   threads[i] = std::thread(func);
}

func();

for (int i = 0; i < numThreads-1; i++){
   threads[i].join();
}

非常感谢您!

0 个答案:

没有答案