ホームページ  >  記事  >  バックエンド開発  >  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 サポート

2016 年 5 月現在、 Win32 スレッド モデルを使用した MinGW-w64 のネイティブ std::thread サポートは、mingw-std-threads ヘッダーをインストールすることで実現されます。

これは、スレッドを実装する他の GCC インストールのようなネイティブ スレッド サポートが MinGW-w64 にないためです。 gthread または pthread 経由。 MinGW-w64 にも glibc ポートがありませんが、MSVC ランタイムと独自のコードを使用して不足しているコンポーネントを埋めています。

MinGW-w64 の最近のバージョンには、pthreads (「winpthreads」) の Win32 ポートが含まれており、これが選択する理由の説明になります。インストール中の「pthread」モデルによりスレッドが有効になります。

以上がWin32 スレッド モデルの MinGW-w64 は std::thread をネイティブにサポートしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。