Alex Rivera | Logout

ScheduledExecutorService, how to stop action without stopping executor?

Asked 2013-07-02T07:02:14.233
9

I have this code:

ScheduledExecutorService scheduledExecutor;
.....
ScheduledFuture<?> result = scheduledExecutor.scheduleWithFixedDelay(
    new SomethingDoer(),0, measurmentPeriodMillis, TimeUnit.MILLISECONDS);

After some event I should stop action, which Declared in run() method of the SomethingDoer, which implements Runnable.

How can I do this? I can't shutdown executor, I should only revoke my periodic task. Can I use result.get() for this? And if I can, please tell me how it will work.

Edit
Report

1 Answer

6

You can use the cancel() method from your ScheduledFuture object. Once cancelled, no further tasks will be executed.

If you want your currently running task to stop, you need to code your run method so it is sensitive to interrupts and pass true to the cancel() method to request an interrupt.

answered 2013-07-02T07:24:11.663

Your Answer