【发布时间】:2013-06-19 00:20:39
【问题描述】:
我正在 Windows 上安装 mingw-w64,有两个选项:win32 线程和 posix 线程。我知道win32线程和pthreads有什么区别,但我不明白这两个选项有什么区别。我怀疑如果我选择 posix 线程,它会阻止我调用像 CreateThread 这样的 WinAPI 函数。
似乎这个选项指定了某个程序或库将使用哪个线程 API,但是通过什么?通过 GCC、libstdc++ 还是其他方式?
我发现了这个: Whats the difference between thread_posixs and thread_win32 in gcc port of windows?
简而言之,对于这个版本的mingw,threads-posix版本将使用posix API并允许使用std::thread,而threads-win32将使用win32 API,并禁用std::thread标准的一部分。
好的,如果我将选择 win32 线程,则 std::thread 将不可用,但仍将使用 win32 线程。但被什么使用?
【问题讨论】:
-
由使用 this gcc 创建的应用程序使用。
-
@devnull,这不是由我将使用的 API 决定的吗?如果我将选择 pthreads 版本的 MinGW,那么什么会阻止我将 WinAPI 用于线程?
-
gcc 会阻止你,或者更确切地说:变得不稳定
-
我看到了这篇关于为 Windows 配置 MinGW-w64 的 Visual Studio Code 文章 (code.visualstudio.com/docs/cpp/config-mingw),他们似乎已经选择了 posix 版本(还有 x86_64 和 seh)。
标签: windows gcc pthreads mingw