我有以下代码(多线程版本):C++多线程代码执行在相同的时间单线程
std::vector<std::thread> threads;
for (size_t i = 0; i < videos.size(); ++i) {
threads.push_back(std::thread([&features, i]() {
for (size_t j = 0; j < videos.at(i).size(); ++j) {
features.extract(...);
}
});
threads.back().join();
}
的问题是,在单线程版本需要大约3分钟来执行与多线程再次取大约3分钟即可执行。外部for循环两次,所以有两个线程。我不应该看到执行时间有所改进吗?甚至几秒钟?
你不应该立即加入.. 。然后你的工作与线程创建的开销串联... – Jarod42
@ Jarod42我应该什么时候加入?也许在外环之后? – DimChtz
也你必须加入整个线程向量。 – user1810087