相关疑难解决方法(0)

如何从ScheduledExecutorService中删除任务?

我有一个ScheduledExecutorService时间周期性的几个不同的任务scheduleAtFixedRate(Runnable, INIT_DELAY, ACTION_DELAY, TimeUnit.SECONDS);

我也有一个Runnable与此调度程序不同的用法.当我想从调度程序中删除其中一个任务时,问题就开始了.

有没有办法做到这一点?

我是否正确使用一个调度程序执行不同的任务?实现这个的最佳方法是什么?

java android scheduledexecutorservice

56
推荐指数
1
解决办法
4万
查看次数

如何有效地取消定期的ScheduledExecutorService任务

因此,使用链接作为参考,是否有人可以建议更优雅的解决方案来取消定期的ScheduledExecutorService任务?

这是我目前正在做的一个例子:

// do stuff

// Schedule periodic task
currentTask = exec.scheduleAtFixedRate(
                            new RequestProgressRunnable(),
                            0, 
                            5000,
                            TimeUnit.MILLISECONDS);

// Runnable
private class RequestProgressRunnable implements Runnable
{
        // Field members
        private Integer progressValue = 0;

        @Override
        public void run()
        {
            // do stuff

            // Check progress value
            if (progressValue == 100)
            {
                // Cancel task
                getFuture().cancel(true);
            }
            else
            {
                // Increment progress value
                progressValue += 10;
            }
        }
    }

    /**
     * Gets the future object of the scheduled task
     * …
Run Code Online (Sandbox Code Playgroud)

java multithreading

18
推荐指数
1
解决办法
1万
查看次数

检查周期性ScheduledFuture是否正在运行

我有一个定期任务通过Spring安排TaskScheduler.schedule(Runnable, Trigger).

鉴于返回ScheduledFuture,有没有办法检查,如果任务正在当前运行?

java concurrency scheduling

3
推荐指数
1
解决办法
4523
查看次数