如果我使用 aThreadPoolExecutor
我有各种构造函数,我可以传递/使用我自己的队列作为池的工作队列。
现在我看到 aScheduledThreadPoolExecutor
是的子类,ThreadPoolExecutor
但构造函数要少得多。
有没有办法使用 aScheduledThreadPoolExecutor
并且仍然使用我自己的工作队列?
问问题
1982 次
1 回答
-3
您可以扩展ScheduledThreadPoolExecutor
类并使用DelayedWorkQueue
与当前ScheduledThreadPoolExecutor
实现绑定的不同队列。请注意,这DelayedWorkQueue
只是一个在幕后BlockingQueue
使用的实现。DelayQueue
但是,如果您只需要配置 min、max、keepAlive 或其他参数(不需要更改DelayedWorkQueue
),您只会扩展ThreadPoolExecutor
(类似于ScheduledThreadPoolExecutor
正在做的事情)并且在您的构造函数中,您将执行类似于ScheduledThreadPoolExecutor
构造函数正在做的事情现在,委托给ThreadPoolExecutor
喜欢的人:
super(min, max, keepAliveTime, TimeUnit.NANOSECONDS,
new CustomQueue(), threadFactory);
于 2012-11-22T14:17:34.763 回答