私はライブラリとしてSDLを使用するC++ 11でアプリケーションを開発しています。私は自分のアプリケーションのマルチスレッドサポートを追加する予定です。私のアプリケーションでSDL_Threadとstd :: threadを使用するかどうかに違いはありますか?SDLとC++の11スレッド
0
A
答えて
1
特にSDLのスレッドハンドルタイプを必要とするSDL APIの一部を使用しているのでない限り、C++のstd::thread
を使用する方がよいでしょう。 APIはより慣用的です(たとえば、関数を開始するために引数を転送できるコンストラクタ)。そのコードをSDLが提供するものに結びつけません。
実際にSDL_Thread *
を渡す必要がある場合は、現在のスレッドのハンドルを照会する方法がありません。許可されたstd::thread
はこれを提供しませんが、インターフェイスが豊富なので、使用するのがより理にかなっています。
編集:どちらのインターフェイスもPOSIXスレッドから大きく派生しているようですが、例外は1つあります。 std::thread
には、取り消し機能が組み込まれていません。通常、何らかのクリーンアップをせずにスレッドを強制終了したくないのですが、言及する価値はあります。
関連する問題
- 1. C++でのスレッドのパフォーマンス11
- 2. Cプログラミングセグメンテーションフォールト:11スレッドの問題
- 3. C++でのスレッドの移動11
- 4. C++でのスレッドの分離11
- 5. C++でのスレッド11クラスメンバーではない
- 6. SDLとC++での衝突
- 7. ロックミューテックスでC++ 11スレッドがハングする
- 8. C++ SDL
- 9. C++のSDLミュートボリューム
- 10. C++/SDLスレッド - イベントが中断しました
- 11. C++ 11は「スレッド」とは何を考えていますか?
- 12. 共有mutexとクラスインスタンスを持つC++ 11スレッド
- 13. SDL C++リンカエラー
- 14. SDL C++フレームレートカウンタ?
- 15. C++ SDLヘッダーファイルのエラー
- 16. C++のSIGSEGVエラーSDL
- 17. C++ 11とC++ 14のconstexpr
- 18. C++ SDL SDL_Rectのx軸とy軸
- 19. SDL/C++(Accelerated)Black Screen
- 20. SDL/C++ &&オペレータ - Lazyfooチュートリアル
- 21. SDL/C EventHandler continuous key
- 22. C++ウィンドウ作成/ SDL
- 23. C++ 11スレッド:条件変数を待っている複数のスレッド
- 24. rubysdlとruby-sdl-ffi
- 25. スレッドを取得するC++ 11でのpthreadsのコアアフィニティー
- 26. javaとC++ 11 volatile
- 27. Boost.RegexとC++ 11 Regex
- 28. C++ SDLゲームのロケット曲率
- 29. C++ 11でスレッドの飢餓を防ぐ方法
- 30. 同期でスレッドの寿命を延ばす(C++ 11)
SDLは、選択された実装に応じて、pthreadなどのシステム固有の実装をターゲットにするだけでなく、C++スレッドも使用できます。具体的なことがあなたの問題にとって重要であるなら、SDLとC++の両方が何をしているのか確かめてください。 SDLはおそらく、スレッド・スタック・サイズ(*スレッド・インプリメンテーションとしてC++スレッドを使用していない場合は*) – keltar