介绍 Java 自带的线程池(2)
来源:互联网 发布:北京育知同创 编辑:程序博客网 时间:2024/06/05 16:26
java.util.concurrent.ThreadPoolExecutor 类提供了丰富的可扩展性。你可以通过创建它的子类来自定义它的行为。例如,我希望当每个任务结束之后打印一条消息,但我又无法修改任务对象,那么我可以这样写: 除了 afterExecute 方法之外,ThreadPoolExecutor 类还有 beforeExecute() 和 terminated() 方法可以重写,分别是在任务执行之前和整个线程池停止之后执行。 除了可以添加任务执行前后的动作之外, ThreadPoolExecutor 还允许你自定义当添加任务失败后的执行策略。你可以调用线程池的 setRejectedExecutionHandler() 方法,用自定义的 RejectedExecutionHandler 对象替换现有的策略。 ThreadPoolExecutor 提供 4 个现有的策略,分别是: 这里是一个例子: ThreadPoolExecutor executor = new ThreadPoolExecutor(size, maxSize, 1, TimeUnit.DAYS, queue); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy()); 除此之外,你也可以通过实现 RejectedExecutionHandler 接口来编写自己的策略。下面是一个例子: );
ThreadPoolExecutor executor = new ThreadPoolExecutor(size, maxSize, 1, TimeUnit.DAYS, queue) {
@Override
protected void afterExecute(Runnable r, Throwable t) {
System.out.println("Task finished.");
}
};
ThreadPoolExecutor executor = new ThreadPoolExecutor(3, 6, 1, TimeUnit.SECONDS, queue,
new RejectedExecutionHandler() {
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
System.out.println(String.format("Task %d rejected.", r.hashCode()));
}
}
转自
- 介绍 Java 自带的线程池(2)
- 介绍 Java 自带的线程池(2)
- 介绍 Java 自带的线程池(2)
- 介绍 Java 自带的线程池(1)
- 介绍 Java 自带的线程池(1)
- 介绍 Java 自带的线程池(1)
- 介绍 Java 自带的线程池(1)
- Java自带线程池基本介绍
- java自带的线程池ThreadPoolExecutor
- Java底层自带的线程池
- java自带的线程池ThreadPoolExecutor
- Java自带的线程池ThreadPoolExecutor
- java自带线程池的使用
- Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
- Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
- Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
- Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
- Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
- Reactor
- 处理异步调用超时
- 动态规划算法介绍与相关问题。
- 介绍 Java 自带的线程池(1)
- 改善双极电流吸收器的误差补偿方法
- 介绍 Java 自带的线程池(2)
- JDK自带线程池解析
- Windows下搭建Android开发平台
- tinyos主程序
- Oracle JDBC驱动与时间不见了的问题 -Doracle.jdbc.V8Compatible="true"
- ubutu10.10 apache 配置虚拟目录
- CI(CodeIgniter) 实现网站在线自动发送邮件
- LIS贷款查询系统 开发日志
- 设计模式--迭代器模式(Iterator)