线程池

编程

(一)Executor

public interface Executor {

/**

* 在未来的某一时刻执行command,通过一个新的线程,线程池,或是调用线程本身

*/

void execute(Runnable command);

}

 

(二)ExecutorService

public interface ExecutorService extends Executor {

/**

* 有序地关闭线程池,先前提交的任务会被执行,之后再提交的任务不会被接受,

* 不会等待先前提交的任务执行完

*/

void shutdown();

/**

* 停止所有正在执行的任务,返回正在等待执行的任务队列,

* 不会等待正在执行的任务被停止

*/

List<Runnable> shutdownNow();

/**

* 线程池是否被停止(是否执行过shutdown或shutdownNow方法)

*/

boolean isShutdown();

/**

* 所有任务是否已完成(执行完shutdown或shutdownNow方法之后)

*/

boolean isTerminated();

/**

* 阻塞,直到所有任务在shutdown之后完成,或者超时,或者线程被中断

*/

boolean awaitTermination(long timeout, TimeUnit unit)

throws InterruptedException;

/**

* 提交任务

*/

<T> Future<T> submit(Callable<T> task);

/**

* 提交任务

*/

<T> Future<T> submit(Runnable task, T result);

/**

* 提交任务

*/

Future<?> submit(Runnable task);

/**

* 提交任务队列,当所有任务完成后,返回一个future队列

*/

<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)

throws InterruptedException;

/**

* 提交任务队列,当所有任务完成后,或超时后,返回一个future队列

*/

<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks,

long timeout, TimeUnit unit)

throws InterruptedException;

/**

* 提交任务队列,返回第一个成功完成的结果

*/

<T> T invokeAny(Collection<? extends Callable<T>> tasks,

long timeout, TimeUnit unit)

throws InterruptedException, ExecutionException, TimeoutException;

/**

* 提交任务队列,返回第一个成功完成的结果,在超时之前

*/

<T> T invokeAny(Collection<? extends Callable<T>> tasks,

long timeout, TimeUnit unit)

throws InterruptedException, ExecutionException, TimeoutException;

}

 

以上是 线程池 的全部内容, 来源链接: utcz.com/z/510406.html

回到顶部