invokeAll()
在提交的Callable
中的所有Collection
完成后才会返回,那么结果Future
的原因是什么?
答案 0 :(得分:4)
因为任务可能正常终止或异常终止,Callable<Integer> c1 = () -> 1;
Callable<Integer> c2 = () -> {
throw new RuntimeException();
};
List<Future<Integer>> futures = executor.invokeAll(Arrays.asList(c1,c2));
for (Future<Integer> future : futures) {
System.out.println(future.get());
}
可以为您包装异常。例如,
Future
请注意,由于invokeAll
,我们能够获得正常终止的未来结果以及异常终止的结果。
如果List<T>
返回class dice extends nplayer{
private $face1;
private $face2;
public function roll(){
$die = array('1', '2', '3', '4', '5', '6');
$randDie = array_rand($die);
$this->face1=$randDie;
...
}
}
class nplayer{
private $name;
private function __construct($nam){
$this->namw=$nam;
}
public function play(){
$this->roll();
}
public function show($name){
print "<...>";
}
}
class resuts{
}
,则必须返回成功完成的内容并丢弃具有例外情况的内容。
答案 1 :(得分:0)
执行给定的任务,返回持有他们的期货清单 完成后的状态和结果。 Future.isDone()对每个都是正确的 返回列表的元素。 请注意,已完成的任务可能有 正常终止或通过抛出异常终止。 结果 如果修改了给定的集合,则此方法未定义 此操作正在进行中。
表示我们正在获取Future
个对象的列表,因为即使任务完成,我们也可能无法获取值。