0

ゲームの状態を管理するために多くのスレッドで使用されるステートマシンがあります。何かが発生し、ゲームのインスタンスが何らかの理由で状態を変更しない場合は、スレッドをクリーンアップできる必要があります。

どうすればこれを行うことができますか、ステートマシンを持っていますか?

4

1 に答える 1

0

私がきちんとあなたを取得しているなら、あなたはイベントを与えられたスレッドを終了し、状態が変わらないかどうかをチェックすることを意味します。あなたはいくつかの方法でそれを行うことができます。考えられる解決策を提案させてください。

1-スレッドを終了する簡単な方法は、それらのスレッドをリストや配列などに配置することです。終了するスレッドを識別する方法です。

2-terminateTheadList(...)を実行するメソッドを作成します。

3-それらを終了する方法は、java.lang.Thread .interrupt()メソッドを使用することです。スレッドリスト、配列などを繰り返し処理します。そしてそれらをinterrupt()します。次に、例外を取得したら、スレッドを終了させます(つまり、この例外をキャッチしてループしないでください)。

4-ゲームのインスタンスが新しいスレッドを作成するかどうかを確認するには(これはスレッド終了リストに含まれていてはなりません)、そのインスタンスゲームをチェックアウトし、これが最後に変更された時刻を入力します。寝てまたチェックアウトします。インスタンスが変更されていない場合は、terminateThreadListメソッドを再度呼び出します。

これがお役に立てば幸いです

于 2012-10-29T12:12:49.617 に答える