简介
这是个接口,扩展了Executor接口,他有四个实现类:
AbstractExecutorService
ForkJoinPool
ScheduledThreadPoolExecutor
ThreadPoolExecutor
API讲解
关闭
void shutdown()
List<Runnable> shutdownNow()
这个方法参考这个文章:https://blog.csdn.net/qq_43040688/article/details/106041236
注意一点:<mark>在执行完关闭后,线程池就会拒绝任何任务的提交</mark>
执行一个方法
<T> Future<T> submit(Callable<T> task)
<T> Future<T> submit(Runnable task,T result)
Future<?> submit(Runnable task)
result
:使用Future的get方法,就会返回这个结果
执行一批方法
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
throws InterruptedException
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks,
long timeout,
TimeUnit unit)
throws InterruptedException
<T> T invokeAny(Collection<? extends Callable<T>> tasks)
throws InterruptedException,
ExecutionException
<T> T invokeAny(Collection<? extends Callable<T>> tasks,
long timeout,
TimeUnit unit)
throws InterruptedException,
ExecutionException,
TimeoutException
- 这是个同步方法
invokeAll
:会返回所有方法的执行结果invokeAny
:会返回任意一个的执行结果;当返回结果后,其他任务不会执行
调试方式
判断线程池是否终结
boolean isTerminated()
判断是否执行了终结方法
boolean isShutdown()