共同学习Java源代码-多线程与并发-AbstractExecutorService类(一)
来源:互联网 发布:广发淘宝卡 集分宝2017 编辑:程序博客网 时间:2024/06/09 19:55
public abstract class AbstractExecutorService implements ExecutorService
这个类实现了ExecutorService接口
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value) {
return new FutureTask<T>(runnable, value);
}
protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable) {
return new FutureTask<T>(callable);
}
这两个方法是创建新任务的方法 将参数传给new出来的FutureTask
public Future<?> submit(Runnable task) {
if (task == null) throw new NullPointerException();
RunnableFuture<Void> ftask = newTaskFor(task, null);
execute(ftask);
return ftask;
}
public <T> Future<T> submit(Runnable task, T result) {
if (task == null) throw new NullPointerException();
RunnableFuture<T> ftask = newTaskFor(task, result);
execute(ftask);
return ftask;
}
public <T> Future<T> submit(Callable<T> task) {
if (task == null) throw new NullPointerException();
RunnableFuture<T> ftask = newTaskFor(task);
execute(ftask);
return ftask;
}
这三个方法是将任务提交给线程池的方法
判断任务为空就抛出异常
调用上面的方法创建一个新的FutureTask并赋给接口RunnableFuture
执行RunnableFuture 返回执行完的RunnableFuture
- 共同学习Java源代码-多线程与并发-AbstractExecutorService类(一)
- 共同学习Java源代码-多线程与并发-AbstractExecutorService类(二)
- 共同学习Java源代码-多线程与并发-AbstractExecutorService类(三)
- 共同学习Java源代码-多线程与并发-FutureTask类(一)
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(一)
- 共同学习Java源代码-多线程与并发-FutureTask类(二)
- 共同学习Java源代码-多线程与并发-FutureTask类(三)
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(二)
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(三)
- 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(四)
- 共同学习Java源代码-多线程与并发-Executor、ExecutorService接口
- 共同学习Java源代码-多线程与并发-Future、RunnableFuture接口
- 共同学习Java源代码-多线程与并发-BlockingQueue接口
- 共同学习Java源代码-多线程与并发-CompletionService接口和ExecutorCompletionService类
- 共同学习Java源代码--常用工具类--AbstractStringBuilder(一)
- 共同学习Java源代码--常用工具类--StringBuffer(一)
- 共同学习Java源代码--数据结构--AbstractCollection抽象类(一)
- 共同学习Java源代码--数据结构--AbstractList抽象类(一)
- SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)
- 使用arduino拯救你的arduino开发板(含arduino拯救16u2/8u2的usbserial)
- MongoDB查询优化器
- 12月 加油
- 讲师—修改
- 共同学习Java源代码-多线程与并发-AbstractExecutorService类(一)
- android webview 返回上一页
- Ztree 限制根节点大类下勾选的子节点个数不超过5个
- 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- Linux free命令详解(转)
- 并发编程系列之一:锁的意义
- Qt5中使用lambda表达式
- 人事管理
- GetInvocationList 方法