私はいくつかのタスクを実行するいくつかのスレッドが生成されるモジュールを作成しています。全体的に私は、スレッドプールを使って 'タスク'を作成して提出する 'リゾルバー'クラスに情報を提供する 'マネージャ'クラスを持っています。キューに既に生成されたタスクを見つけるための戦略
リゾルバにはスレッドプールエグゼキュータがあります。スレッドプールエグゼキュータには、perticularタスクがすでに生成されているかどうかを確認するために使用している無制限キューがあります。キューにタスクのインスタンスがすでに存在する場合は、ThreadPoolExecutorを使用してタスクのインスタンスを削除し、新しいタスクを再度サブミットします。これは、新しいタスクが 'マネージャ'から新しい情報をもたらすため、意図的に行われます。
ThreadPoolexecutorを使用して、タスクがすでにキューに入っているかどうかを調べています。しかし、キューのパフォーマンスが心配であり、キューには30000を超えるインスタンスのタスクが含まれている可能性があるため、ハッシュマップを使用する方が良いと感じています。
キューに既に生成されたタスクを見つけるための適切な戦略を選択する方法を教えてください。
タスクを見つけ出すのではなく、 'Future.cancel(false)'を使うことができます。これは、まだ開始していないタスクを停止します。 –