Java ScheduledThreadPoolExecutor:如何优先处理任务?

Java ScheduledThreadPoolExecutor:如何优先处理任务?,java,multithreading,concurrency,scheduledexecutorservice,Java,Multithreading,Concurrency,Scheduledexecutorservice,我需要一个ScheduledThreadPoolExecutor,它根据优先级运行任务。如果有两个或多个任务等待立即执行,则必须首先调用具有最高优先级的任务 实际上,ThreadPoolExecutor有一个解决方案,但ScheduledThreadPoolExecutor没有,因为它没有提供带BlockingQueue参数的构造函数 请参阅:如果我是你,我将有一个单线程ScheduledThreadPoolExecutor,它使用优先级BlockingQueue发布到ThreadPoolExe

我需要一个ScheduledThreadPoolExecutor,它根据优先级运行任务。如果有两个或多个任务等待立即执行,则必须首先调用具有最高优先级的任务

实际上,ThreadPoolExecutor有一个解决方案,但ScheduledThreadPoolExecutor没有,因为它没有提供带BlockingQueue参数的构造函数


请参阅:

如果我是你,我将有一个单线程
ScheduledThreadPoolExecutor
,它使用
优先级BlockingQueue
发布到
ThreadPoolExecutor
。这不是最优雅的,但它会完成任务。

您如何实现scheduleXXX(..)等不属于ThreadPoolExecutor的方法?@Chriss:我的意思是,一定要使用一个计划执行器,但让它简单地将(提交任务)发布到具有优先级队列的线程池执行器。通过这种方式,您可以使用计划执行器执行所有您可以做的事情,并且仍然有效地对执行进行优先级排序。缺点是(潜在地)性能/计划准确性方面的微小损失,但我最确定的是,这件事太小了