在ExecutorService的,我怎麼能組的所有線程處理特定課程ID,然後在一個線程中完成的過程,當然ID,請關閉所有其它線程這是在此過程中ID的過程?集團線程的ExecutorService
能夠處理過程ID,直到一個線程結束處理的線程數,不是一個固定的數目。
更新:
因此,任何線程進入處理此過程中,我將它們添加到一個靜態集合。
假設爲courseid1,線程1最初處理,
List l1 = new ArrayList();
l1.add(thread1);
Map t = new Hashmap();
t.add("courseid1":l1)
所以,當線程1是在進程中的另一個線程來處理courseid1,
l1.add(thread2);
然後,一旦線程1看到課程狀態爲完成,我將成功發送到列表l1中的所有線程。
您從執行者獲得的未來具有'cancel'方法,可能可以做到這一點。當然,你必須維護某種任務註冊表,以便知道要取消什麼。 – mszymborski