私はPythonプログラミングにかなり慣れていませんが、スレッドは私の専門分野ではありません。私はここの人々が私を助けてくれることを願っている問題を抱えています。
タスク:私の修士論文の一部として、マルチプレイヤー機能を含む複合現実ゲームを作成する必要があります。私のゲームデザインでは、各プレイヤーは一連のトラップを設定できます。各トラップは、30秒などの特定の期間アクティブになります。すべてのプレーヤーで一貫したゲーム状態を維持するには、Pythonで実装されているサーバー側で常にチェックを行う必要があります。
プレーヤーが新しいトラップを設定するたびにPythonスレッドを開始し、スレッドでタイマーを実行することにしました。この部分はすべて問題ありませんが、実際の問題は、この特定のトラップの時間が経過したことをメインスレッドに通知する必要がある場合に発生します。これにより、クライアント(Androidデバイス)と同じ通信を行うことができます。
タスクが完了したときにキューを作成してキューに情報を挿入しようとしましたが、タスクが完了するまでメインスレッドが保留になるため、queue.join()を実行できません。これは必要なことでも、必要なことでもありません。私の場合、メインスレッドは常にクライアントと通信しているので、それが停止すると、プレーヤーとのすべての通信が停止するので理想的です。
タイマーを実行しているセカンダリスレッドが、時間がなくなるとすぐにメインスレッドに通知し、トラップのIDを送信して、この情報をAndroidクライアントに渡すことができるようにする必要があります。それを削除します。どうすればこれを達成できますか?
膨大な数のスレッドを開始せずにこのタスクを実行する方法に関するその他の提案も歓迎します。.:):)
助けてくれてありがとう。
乾杯