从ScheduleAtFixedRate转换为CachedThreadPool

时间:2018-09-11 00:20:55

标签: java multithreading concurrency

下面的线程每12-24小时运行一次,我不想池中有一个空闲线程。当前代码是:

private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
...
scheduler.scheduleAtFixedRate(() -> getLastestJson(), INITIAL_DELAY, CHECK_INTERVAL, TimeUnit.MINUTES);

在CHECK_INTERVAL> 12小时的情况下,如何利用newCachedThreadPool()。该操作的持续时间为<15秒。

1 个答案:

答案 0 :(得分:1)

您真的不能这样做,因为线程需要等待,以便在适当的时间开始新工作。您当前的版本是最小的解决方案,带有1个“空闲”线程。