How to interrupt ExecutorService's threads

Ofek Ron picture Ofek Ron · Feb 14, 2012 · Viewed 28.3k times · Source

When using the ExecutorService returned by Executors.newSingleThreadExecutor(), how do I interrupt it?

Answer

erickson picture erickson · Feb 14, 2012

In order to do this, you need to submit() a task to an ExecutorService, rather than calling execute(). When you do this, a Future is returned that can be used to manipulate the scheduled task. In particular, you can call cancel(true) on the associated Future 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 an ExecutorService.