线程池
(一)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