如何实现ExecutorService以基于轮换的方式执行任务?

如何实现ExecutorService以基于轮换的方式执行任务?,第1张

如何实现ExecutorService以基于轮换的方式执行任务?

ThreadPoolExecutor为afterExecution提供了一个扩展点,您可以在其中将作业放回队列的末尾

public class TaskRepeatingThreadPoolExecutor extends ThreadPoolExecutor {    public TaskRepeatingThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) {        super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);    }    @Override    protected void afterExecute(Runnable r, Throwable t) {        super.afterExecute(r, t);        this.submit(r);    }}

当然,您将需要做更多的工作来自己实例化它,而无需

ExecutorService
使用方便的工厂方法,但是构造函数非常简单,可以轻松完成。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5561655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存