ExecutorServiceでは、特定のコースIDを処理するすべてのスレッドをグループ化し、そのコースIDを1つのスレッドが処理し終えると、そのコースIDの処理中にある他のスレッドをすべて閉じることができますか?ExecutorService内のグループスレッド
1つのスレッド終了プロセスまでコースidを処理できるスレッドの数は固定数ではありません。
更新:
だから、任意のスレッドがこのコースを処理するために入力して、私は静的なコレクションに追加するつもりです。
、コースの状態が完全であることがわかりスレッド1一度次に、スレッド1が処理中にcourseid1ため、スレッド1は当初、
List l1 = new ArrayList();
l1.add(thread1);
Map t = new Hashmap();
t.add("courseid1":l1)
を処理しているので、別のスレッドがcourseid1を処理するために来る
l1.add(thread2);
を仮定私はリストl1のすべてのスレッドに成功を送ります。
将来、実行者から取得するには、それを実行できる「キャンセル」メソッドがあります。もちろん、あなたは何をキャンセルするかを知るために、何らかのタスクレジストリを維持しなければならないでしょう。 – mszymborski