java ScheduledExecutorService任务在多次执行后停止

时间:2015-08-12 07:37:42

标签: java multithreading scheduledexecutorservice

我遇到问题,我正在尝试在ScheduledExecutorService中执行一个Task,并且我正在使用以下命令执行任务:

updateTagDataHandle = scheduler.scheduleWithFixedDelay(updateTagDataRunnable, 500, 500, TimeUnit.MILLISECONDS);

并且在几次成功运行后停止。任务本身花了几秒钟我用println检查它没有错误就到任务结束了,我打印任何异常并且最后没有看到异常。我需要它继续无限次运行。

任何帮助将不胜感激

修改

我初始化任务调度程序的代码是:

scheduler = Executors.newScheduledThreadPool(1);

所以corePoolSize = 1所以只有一个线程处于活动状态,并且任务在线程上共享它。但是将threadPool设置为多个并没有帮助,而且似乎只有一个线程处于活动状态。

同样的问题: Executors Factory method newScheduledThreadPool always returns the same Thread pool

在这里:

Why doesn't ScheduledExecutorService spawn threads as needed?

任何帮助将不胜感激

编辑:

没有找到解决方案,因此使用了调度程序自定义线程创建:

scheduler = Executors.newScheduledThreadPool(7, new ThreadFactory() {

        @Override
        public Thread newThread(Runnable r) {

            return new Thread(r);
        }
    });

1 个答案:

答案 0 :(得分:0)

尝试将初始延迟更改为1000毫秒。
我在Android应用程序中尝试了相同的代码,这解决了问题。

相关问题