手头有以下代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
如果以上是正确的?
如果一切future.isDone()都是真的,那么所有的线程都已经完成了吗?
我怎样才能制作旗帜,以确保所有这些都完成了?
要检查是否所有都是真的,您可以执行以下操作:
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")
Run Code Online (Sandbox Code Playgroud)