我觉得我在这里错过了一些东西......
我稍微改变了一些代码,从使用到改变std::thread,std::async并注意到性能的显着增加.我写了一个简单的测试,我认为它应该std::thread像使用它一样运行几乎相同std::async.
std::atomic<int> someCount = 0;
const int THREADS = 200;
std::vector<std::thread> threadVec(THREADS);
std::vector<std::future<void>> futureVec(THREADS);
auto lam = [&]()
{
for (int i = 0; i < 100; ++i)
someCount++;
};
for (int i = 0; i < THREADS; ++i)
threadVec[i] = std::thread(lam);
for (int i = 0; i < THREADS; ++i)
threadVec[i].join();
for (int i = 0; i < THREADS; ++i)
futureVec[i] = std::async(std::launch::async, lam);
for (int i = 0; i …Run Code Online (Sandbox Code Playgroud)