ループに関する C++ Boost の質問。
そのため、私はできる限り多くの情報を調べてきましたが、私がやろうとしていることの例や、それがどのように機能するかの原則をまだ見ていません.
私は余暇を利用して、数年間 C++ でゲームを設計してきました。ゲームロジック用のコアエンジンと、大まかな入力システムをすべて把握し、出力に OpenGL と AL を使用しました。私がやりたいことは、エンジンを起動する方法を見つけ出し、入力システム、グラフィック エンジン、およびサウンド システムを別々のスレッドで実行することです。そしてすべてが同時に実行されます。スレッドを同期することが次のステップですが、スレッドを一緒に実行することができません。
boost::thread gTrd(boost::bind(&game::runGraphics, this));
gTrd.join();
boost::thread sTrd(boost::bind(&game::runSound, this));
sTrd.join();
boost::thread iTrd(boost::bind(&game::runInput, this));
iTrd.join();
boost::thread cTrd(boost::bind(&game::runCore, this));
cTrd.join();
それが私がこれまでに得たものです。問題は、gTrd のグラフィックス エンジンには、プログラムが終了するまで続くと思われる無限ループがあるため、空白の画面が表示されますが、sTrd が起動しないことです。
理論的には不定スレッドであるスレッドを実行できるようにするには、正確に何が必要ですか? また、メモリ リークに関して注意する必要がある潜在的な問題についても知っておくとよいでしょう。