java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.util.concurrent
类 AbstractExecutorService

java.lang.Object
  继承者 java.util.concurrent.AbstractExecutorService
所有已实现的接口:
Executor, ExecutorService
直接已知子类:
ThreadPoolExecutor

public abstract class AbstractExecutorService
extends Object
implements ExecutorService

提供 ExecutorService 执行方法的默认实现。此类使用包中提供的默认 FutureTask 类实现了 submitinvokeAnyinvokeAll 方法。例如,submit(Runnable) 的实现创建了一个相关的 FutureTask 类,该类将被执行并返回。为了使用不同 Future 实现而重写这些方法的子类,对于每个方法都应该采用一致的做法。

从以下版本开始:
1.5

构造方法摘要
AbstractExecutorService()
           
 
方法摘要
<T> List<Future<T>>
invokeAll(Collection<Callable<T>> tasks)
          执行给定的任务,当所有任务完成时,返回保持任务状态和结果的 Future 列表。
<T> List<Future<T>>
invokeAll(Collection<Callable<T>> tasks, long timeout, TimeUnit unit)
          执行给定的任务,当所有任务完成或超时期满时(无论哪个首先发生),返回保持任务状态和结果的 Future 列表。
<T> T
invokeAny(Collection<Callable<T>> tasks)
          执行给定的任务,如果某个任务已成功完成(也就是未抛出异常),则返回其结果。
<T> T
invokeAny(Collection<Callable<T>> tasks, long timeout, TimeUnit unit)
          执行给定的任务,如果在给定的超时期满前某个任务已成功完成(也就是未抛出异常),则返回其结果。
<T> Future<T>
submit(Callable<T> task)
          提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future。
 Future<?> submit(Runnable task)
          提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。
<T> Future<T>
submit(Runnable task, T result)
          提交一个 Runnable 任务用于执行,并返回一个 Future,该 Future 表示任务一旦完成后即返回给定的结果。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 java.util.concurrent.ExecutorService 继承的方法
awaitTermination, isShutdown, isTerminated, shutdown, shutdownNow
 
从接口 java.util.concurrent.Executor 继承的方法
execute
 

构造方法详细信息

AbstractExecutorService

public AbstractExecutorService()
方法详细信息

submit

public Future<?> submit(Runnable task)
从接口 ExecutorService 复制的描述
提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。

指定者:
接口 ExecutorService 中的 submit
参数:
task - 要提交的任务。
返回:
表示任务等待完成的 Future,并且其 get() 方法在完成后将返回 null

submit

public <T> Future<T> submit(Runnable task,
                            T result)
从接口 ExecutorService 复制的描述
提交一个 Runnable 任务用于执行,并返回一个 Future,该 Future 表示任务一旦完成后即返回给定的结果。

指定者:
接口 ExecutorService 中的 submit
参数:
task - 要提交的任务
result - 返回的结果
返回:
表示任务等待完成的 Future,并且其 get() 方法在完成后将返回给定的结果。

submit

public <T> Future<T> submit(Callable<T> task)
从接口 ExecutorService 复制的描述
提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future。

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

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

指定者:
接口 ExecutorService 中的 submit
参数:
task - 要提交的任务
返回:
表示任务等待完成的 Future

invokeAny

public <T> T invokeAny(Collection<Callable<T>> tasks)
            throws InterruptedException,
                   ExecutionException
从接口 ExecutorService 复制的描述
执行给定的任务,如果某个任务已成功完成(也就是未抛出异常),则返回其结果。一旦正常或异常返回后,则取消尚未完成的任务。如果此操作正在进行时修改了给定的集合,则此方法的结果是不明确的。

指定者:
接口 ExecutorService 中的 invokeAny
参数:
tasks - 任务集合
返回:
某个任务返回的结果
抛出:
InterruptedException - 如果等待时发生中断
ExecutionException - 如果没有任务成功完成

invokeAny

public <T> T invokeAny(Collection<Callable<T>> tasks,
                       long timeout,
                       TimeUnit unit)
            throws InterruptedException,
                   ExecutionException,
                   TimeoutException
从接口 ExecutorService 复制的描述
执行给定的任务,如果在给定的超时期满前某个任务已成功完成(也就是未抛出异常),则返回其结果。一旦正常或异常返回后,则取消尚未完成的任务。如果此操作正在进行时修改了给定的集合,则此方法的结果是不明确的。

指定者:
接口 ExecutorService 中的 invokeAny
参数:
tasks - 任务集合
timeout - 最长等待时间
unit - timeout 参数的时间单位
返回:
某个任务返回的结果
抛出:
InterruptedException - 如果等待时发生中断
ExecutionException - 如果没有任务成功完成
TimeoutException - 如果在所有任务成功完成之前给定的超时期满

invokeAll

public <T> List<Future<T>> invokeAll(Collection<Callable<T>> tasks)
                          throws InterruptedException
从接口 ExecutorService 复制的描述
执行给定的任务,当所有任务完成时,返回保持任务状态和结果的 Future 列表。返回列表的所有元素的 Future.isDone()true。注意,可以正常地或通过抛出异常来终止已完成 任务。如果正在进行此操作时修改了给定的集合,则此方法的结果是不明确的。

指定者:
接口 ExecutorService 中的 invokeAll
参数:
tasks - 任务集合
返回:
表示任务的 Future 列表,列表顺序与给定任务列表的迭代器所生成的顺序相同,每个任务都已完成。
抛出:
InterruptedException - 如果等待时发生中断,在这种情况下取消尚未完成的任务。

invokeAll

public <T> List<Future<T>> invokeAll(Collection<Callable<T>> tasks,
                                     long timeout,
                                     TimeUnit unit)
                          throws InterruptedException
从接口 ExecutorService 复制的描述
执行给定的任务,当所有任务完成或超时期满时(无论哪个首先发生),返回保持任务状态和结果的 Future 列表。返回列表的所有元素的 Future.isDone()true。一旦返回后,即取消尚未完成的任务。注意,可以正常地或通过抛出异常来终止已完成 任务。如果此操作正在进行时修改了给定的集合,则此方法的结果是不明确的。

指定者:
接口 ExecutorService 中的 invokeAll
参数:
tasks - 任务集合
timeout - 最长等待时间
unit - timeout 参数的时间单位
返回:
表示任务的 Future 列表,列表顺序与给定任务列表的迭代器所生成的顺序相同。如果操作未超时,则已完成所有任务。如果确实超时了,则某些任务尚未完成。
抛出:
InterruptedException - 如果等待时发生中断,在这种情况下取消尚未完成的任务

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策