ThreadPoolExecutorのようなものを使用して、使用可能なスレッドで一連のタスクを実行することを管理したいと思います。これらのタスクはすべて同じタイプですが、異なるアカウントを処理します。これらのアカウントの新しいタスクは定期的に追加できます。同じアカウントの古いタスクが完了するまで、新しいタスクをチェックして開始できないようにします。これを行うための最良の方法は何ですか?
例
アカウント「234」のタスクが開始されます(ThreadPoolExecutor.execute()を介して)
アカウント「238」のタスクが開始されます(ThreadPoolExecutor.execute()を介して)
アカウント「234」の新しいタスクが作成されましたが、最初の「234」タスクが完了していないため、実行するために追加されていません(これを確認する最良の方法は?)
アカウント「238」のタスクが完了します
アカウント「238」の新しいタスクが開始されます(ThreadPoolExecutor.execute()を介して)。これは、そのアカウントで現在実行されているタスクがないためです。
これを行うための最良の方法は何ですか?「234」の最初のタスクが終了するまで、Runnableのチェック変数をwait / sleep()でチェックするだけですか?または、より良い解決策はありますか?