複数のクライアントが接続するサーバーがあります。各接続は新しいスレッドを生成し、新しいスレッドが独立して動作します。Javaで期限切れのクラスとタスク
私は現在、複数のWaitingRoomsを作成できるロビーを作成する作業に直面しています。 2分後、リストに登録されたプレイヤーのためにWaitingRoomがゲームを開始します。
問題は次のとおりです。どのようにタイムドスレッドを作成できますか?私はこれらのソリューションを考えていました:
- SingleThreadExecutorを作成してWaitingRoomsを呼び出し可能にすることで、2分後にgetを呼び出すことができます。
- WaitingRoomに関連付けられたスレッドを作成し、Wrapperクラスを使用してスレッドを作成します.Wrapperクラスには、0に達するまで1秒ごとに変数「timer」が減少するRunnableがあります。
- スレッドが実行されているListを持つクラスを作成し、変数「timer」を減らすメソッドを呼び出します。
この時計はPlayerTurnsとConnectionsにも適用されます。
私は時計を再発明したくありません。私はこのようなことをやっている最初の人ではないと確信しています:標準的な方法はありますか?
多くの質問がありますし、このトピックの回答:以下で説明するように、「ScheduledExecutorService」を検索し、現代的な方法については[Oracle Tutorial](http://docs.oracle.com/javase/tutorial/essential/concurrency/exinter.html)を参照してください。これを行う古い方法で 'Timer'と' TimerTask'を検索します(ServletやJava EEサーバでは*推奨されていません)。 –