首页  >  文章  >  后端开发  >  具有 Win32 线程模型的 MinGW-w64 本身支持 std::thread 吗?

具有 Win32 线程模型的 MinGW-w64 本身支持 std::thread 吗?

DDD
DDD原创
2024-10-31 23:46:29304浏览

Does MinGW-w64 with the Win32 threading model support std::thread natively?

MinGW-w64 本身支持 Win32 线程模型的 std::thread 吗?

使用 MinGW-w64 工具链时,选择 Win32线程模型可能会引起对 C 11 线程支持可用性的担忧。

最初,根据之前的陈述,人们认为无论线程模型如何,都可以使用 std::thread。然而,这个假设被证明是不正确的。

尽管使用 -std=c 11 调用 g,std::thread 仍然不受支持。解决这种差异的选项是:

  • 错误信息:C 11 线程可以与 Win32 线程模型一起工作的最初假设是不正确的。
  • 误解:尽管进行了查询,但仍然不清楚此场景中是否存在 std::thread 支持。
  • 支持但实现意外:std::thread 可能受支持,但不是以直观的方式支持。

但是,“问题中的“开箱即用”资格不包括 mingw-std-threads 等第三方选项。

原生 std::thread 支持

截至 2016 年 5 月, MinGW-w64 中使用 Win32 线程模型的本机 std::thread 支持是通过安装 mingw-std-threads 标头来实现的。

这是因为 MinGW-w64 缺乏本机线程支持,就像其他实现线程的 GCC 安装一样通过 gthread 或 pthread。 MinGW-w64 也缺少 glibc 端口,但使用 MSVC 运行时及其自己的代码来填充缺失的组件。

MinGW-w64 的最新版本包括 pthreads(“winpthreads”)的 Win32 端口,这解释了为什么选择安装过程中的“pthread”模型启用线程。

以上是具有 Win32 线程模型的 MinGW-w64 本身支持 std::thread 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn