私はゲームに取り組んでいるので、ある時点でfork()
を使用しなければならず、メインスレッドはOpenGLグラフィックスを実行し、子スレッドはゲームロジックを実行します。C++でforkしたプロセスをどのようにしてkillできますか?
今問題があります。ある時点で、ユーザは、セカンダリスレッドによって処理されるゲーム内の「終了」ボタンを押すことができる。また、ある時点で、メイン(glut)スレッドによって処理されるゲームを終了するために、Xボタンをクリックすることができる。だからここに私の質問です:どのように私は他の実行中のスレッドを殺すことができます終了しますか?
今すぐウィンドウを閉じると、2番目のスレッドは実行を継続し、2番目のスレッドが終了すると、1番目のスレッドは実行を継続します。
atexit
機能を使用して 'X'ボタンを操作することができましたが、glutMainLoop()
を殺す(安全な)方法が見つかりませんでした。
fork()は新しいスレッドではなく、新しいプロセスを作成します。 – Puppy
私は...スレッドとプロセスの違いは何ですか? – Tibi
正確に何をフォークしましたか?私は、フォークがゲーム(または実際にはデスクトップソフトウェア)で望ましいという理由を考えることはできません。 Windowsは、同様の機能を提供していません。 –