首頁  >  文章  >  後端開發  >  具有 Win32 線程模型的 MinGW-w64 本身支援 std::thread 嗎?

具有 Win32 線程模型的 MinGW-w64 本身支援 std::thread 嗎?

DDD
DDD原創
2024-10-31 23:46:29303瀏覽

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 支援

原生std::thread 支援

截至2016 年5 月, MinGW-w64 中使用Win32 執行緒模型的本機std::thread 支援是透過安裝mingw-std-threads 標頭來實現的。這是因為MinGW-w64 缺乏本機執行緒支持,就像其他實作執行緒的GCC 安裝一樣透過gthread 或pthread。

MinGW-w64 的最新版本包括pthreads(“winpthreads”)的Win32 端口,這解釋了為什麼選擇安裝過程中的“pthread”模型啟用線程。

以上是具有 Win32 線程模型的 MinGW-w64 本身支援 std::thread 嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn