执行人员服务InvokeAll超时与未来获得超时



我们可以将等待时间限制作为参数中的参数(或(所有方法(或(未来对象获取方法

计时时会带来什么区别?

executorService.invokeAll(Arrays.asList(callabletask), 10, TimeUnit.SECONDS);

vs

executorService.submit(callabletask).get(10, TimeUnit.SECONDS);

executorService.invokeAll(Arrays.asList(callabletask), 10, TimeUnit.SECONDS);等待列表中的所有任务在超时之前完成。如果任务在超时到期之前未完成,将抛出TimeOutException。

executorService.submit(callabletask).get(10, TimeUnit.SECONDS);在超时之前,只等待一个任务(callabletask(完成。如果任务在超时到期之前未完成,则此方法还会引发超时访问。

在这种情况下,两种情况都是相同的,因为您发送了一个任务的列表,即Arrays.asList(callabletask)

您可以看到:https://docs.oracle.com/javase/7/docs/api/java/java/java/util/concurrent/concurrent/executorservice.html#invokealt.concurrent.timeunit(

相关内容

  • 没有找到相关文章

最新更新