When using the ExecutorService
returned by Executors.newSingleThreadExecutor()
, how do I interrupt it?
Java ExecutorService – How to Interrupt Threads
concurrencyexecutorservicejavamultithreading
concurrencyexecutorservicejavamultithreading
When using the ExecutorService
returned by Executors.newSingleThreadExecutor()
, how do I interrupt it?
Best Answer
In order to do this, you need to
submit()
a task to anExecutorService
, rather than callingexecute()
. When you do this, aFuture
is returned that can be used to manipulate the scheduled task. In particular, you can callcancel(true)
on the associatedFuture
to interrupt a task that is currently executing (or skip execution altogether if the task hasn't started running yet).By the way, the object returned by
Executors.newSingleThreadExecutor()
is actually anExecutorService
.