ScheduledThreadPoolExecutor源码解析

本文深入解析ScheduledThreadPoolExecutor的工作原理,包括ScheduledFutureTask的使用,添加延时任务的流程,以及scheduleAtFixedRate和scheduleWithFixedDelay的区别。ScheduledThreadPoolExecutor通过自定义DelayedWorkQueue实现高效延时任务调度,避免了PriorityQueue的类型转换开销。
摘要由CSDN通过智能技术生成

ScheduledThreadPoolExecutor是由Doug Lea大神出品,用于执行延时任务的线程池。

public class ScheduledThreadPoolExecutor
        extends ThreadPoolExecutor
        implements ScheduledExecutorService {
			
}

ScheduledThreadPoolExecutor继承了ThreadPoolExecutor,并自定义了延迟阻塞队列DelayedWorkQueue用于存放延时任务,同时使用ScheduledFutureTask来包装待执行的任务。

ScheduledFutureTask

private class ScheduledFutureTask<V>
	extends FutureTask<V> implements RunnableScheduledFuture<V> {
		
}

public class FutureTask<V> implements RunnableFuture<V>{}

public interface RunnableScheduledFuture<V> extends RunnableFuture<V>, ScheduledFuture<V>{}

// 因为继承了Delayed接口,所以包装后的任务才可以添加到延时队列中
public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值