0

如何在ScheduledThreadPoolExecutor不使用 的情况下使用单线程创建一个Executors.newSingleThreadScheduledExecutor

我想这样做的原因是后面的调用返回一个实例DelegatedScheduledExecutorService而不是一个实例ThreadPoolExecutor,所以我尝试能够使用诸如getQueue()etc 之类的方法失败了。如果我可以直接创建一个ThreadPoolExecutor会有所帮助。

我想要的原因getQueue()是没有其他方法可以知道当前在执行程序中排队的任务的大小。

4

2 回答 2

1

您可以手动创建它(这就是幕后Executors.newScheduledThreadPool()所做的,除了您需要强制转换才能以您想要的方式使用返回的对象):

ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1);
BlockingQueue q = scheduler.getQueue();
于 2012-08-07T14:11:28.970 回答
1

使用ScheduledThreadPoolExecutor 的构造函数

于 2012-08-07T14:11:52.777 回答