标签:turn cout 执行文件 class txt size ace auto mingw
我用的 ming-w64 gcc 是通过 MSYS2 安装的,包名是 mingw-w64-x86_64-gcc
,版本 9.2.0-2。
我发现 std::thread 行为异常。
int main() {
auto f = [](int i) {
cout << "i: " << i << endl;
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
};
vector<thread> threads;
for (int i = 0; i < 3; ++i) {
threads.emplace_back(thread(f, i));
}
for (auto &t : threads) {
t.join();
}
cout << "size: " << threads.size() << endl;
return 0;
}
可能会输出
i: 0
i: 2
i: 1
i: 2
size: 3
同样的代码,将 toolchain 换成 Visual Studio,编译生成的可执行文件就是正常的。
mingw-w64 gcc std::thread 行为异常
标签:turn cout 执行文件 class txt size ace auto mingw
原文地址:https://www.cnblogs.com/Patt/p/12021848.html