掌握以下代码:
ExecutorService executor = Executors.newFixedThreadPool(10); Collection collection = new ArrayList(); for (int n=1; n<100; n++) collection.add(new MyThread(n)); try { List<Future<Boolean>> futures = executor.invokeAll(collection); for(Future<Boolean> future : futures){ future.get(); if (future.isDone()) { System.out.println("true"); } else System.out.println("false"); } } catch (Exception e) { e.printStackTrace(); }
如果以上是正确的?
如果所有的future.isDone()都为true,那么所有的线程都已经完成了?
我如何做一个国旗,以确保所有的都完成了?
解决方法
要检查一切是否正确,可以这样做:
boolean works=true; for(Future<Boolean> future : futures){ future.get(); if (future.isDone()) { System.out.println("true"); } else{ System.out.println("false");works=false; } } if(works)System.out.println("yea it works")