java中ExecutorService接口

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  6、 Future submit(Callable task)

  提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future.该 Future 的 get 方法在成功完成时将会返回该任务的结果。

  如果想立即阻塞任务的等待,则可以使用 result = exec.submit(aCallable)。get(); 形式的构造。

  注:Executors 类包括了一组方法,可以转换某些其他常见的类似于闭包的对象,例如,将 PrivilegedAction 转换为Callable 形式,这样就可以提交它们了。

  参数: task – 要提交的任务

  返回: 表示任务等待完成的 Future

  抛出: RejectedExecutionException – 如果任务无法安排执行

  NullPointerException – 如果该任务为 null

  7、 Future submit(Runnable task, T result)

  提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future.该 Future 的 get 方法在成功完成时将会返回给定的结果。

  参数: task – 要提交的任务 result – 返回的结果

  返回: 表示任务等待完成的 Future

  抛出: RejectedExecutionException – 如果任务无法安排执行

  NullPointerException – 如果该任务为 null

  8、Future submit(Runnable task)

  提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future.该 Future 的 get 方法在成功 完成时将会返回null.

  参数:task – 要提交的任务

  返回:表示任务等待完成的 Future

  抛出:RejectedExecutionException – 如果任务无法安排执行

  NullPointerException – 如果该任务为 null

  9、 List> invokeAll(Collection> tasks) throws InterruptedException

  执行给定的任务,当所有任务完成时,返回保持任务状态和结果的 Future 列表。返回列表的所有元素的 Future.isDone() 为true.注意,可以正常地或通过抛出异常来终止已完成 任务。如果正在进行此操作时修改了给定的 collection,则此方法的结果是不确定的。

  参数:tasks – 任务 collection

  返回:表示任务的 Future 列表,列表顺序与给定任务列表的迭代器所生成的顺序相同,每个任务都已完成。

  抛出:InterruptedException – 如果等待时发生中断,在这种情况下取消尚未完成的任务。

  NullPointerException – 如果任务或其任意元素为 null

  RejectedExecutionException – 如果所有任务都无法安排执行

  10、 List> invokeAll(Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException

  执行给定的任务,当所有任务完成或超时期满时(无论哪个首先发生),返回保持任务状态和结果的 Future 列表。返回列表的所有元素的 Future.isDone() 为true.一旦返回后,即取消尚未完成的任务。注意,可以正常地或通过抛出异常来终止已完成 任务。如果此操作正在进行时修改了给定的 collection,则此方法的结果是不确定的。

  参数:tasks – 任务 collection timeout – 最长等待时间 unit – timeout 参数的时间单位

  返回:表示任务的 Future 列表,列表顺序与给定任务列表的迭代器所生成的顺序相同。如果操作未超时,则已完成所有任务。如果确实超时了,则某些任务尚未完成。

  抛出:InterruptedException – 如果等待时发生中断,在这种情况下取消尚未完成的任务

  NullPointerException – 如果任务或其任意元素或 unit 为 null

  RejectedExecutionException – 如果所有任务都无法安排执行

  11、 T invokeAny(Collection> tasks) throws InterruptedException, ExecutionException

  执行给定的任务,如果某个任务已成功完成(也就是未抛出异常),则返回其结果。一旦正常或异常返回后,则取消尚未完成的任务。如果此操作正在进行时修改了给定的 collection,则此方法的结果是不确定的。

  参数:tasks – 任务 collection

  返回:某个任务返回的结果

  抛出:InterruptedException – 如果等待时发生中断

  NullPointerException – 如果任务或其任意元素为 null

  IllegalArgumentException – 如果任务为空

  ExecutionException – 如果没有任务成功完成

  RejectedExecutionException – 如果任务无法安排执行

  12、 T invokeAny(Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException

  执行给定的任务,如果在给定的超时期满前某个任务已成功完成(也就是未抛出异常),则返回其结果。一旦正常或异常返回后,则取消尚未完成的任务。如果此操作正在进行时修改了给定的 collection,则此方法的结果是不确定的。

  参数: tasks – 任务 collection timeout – 最长等待时间 unit – timeout 参数的时间单位

  返回: 某个任务返回的结果

  抛出: InterruptedException – 如果等待时发生中断

  NullPointerException – 如果任务或其任意元素或 unit 为 null

  TimeoutException – 如果在所有任务成功完成之前给定的超时期满

  ExecutionException – 如果没有任务成功完成

  RejectedExecutionException – 如果任务无法安排执行

[1][2]

人生没有彩排,只有现场直播,所以每一件事都要努力做得最好

java中ExecutorService接口

相关文章:

你感兴趣的文章:

标签云: