This question is Related to List returned from shutdownNow() can not be converted to submitted Runnable
Problem definition
I want to get runtime exception from Runnableand which I can get only using submit() call which returns me Future<?>.
If I use Submit I loose on the functionality which is provided by execute. As I will no longer able to use shutdownNow() to track not started threads.
So Is this true
If I want to catch runnable exception from my task I will never be able to use shutdownnow to find out not started task.
You can use
execute()together with Future by using a custom subclass of FutureTask (which is a Runnable). for most Executors, callingsubmit()just wraps the Runnable/Callable with a FutureTask under the hood. In you custom subclass of FutureTask, keep a reference to the underlying Runnable/Callable and expose a method for returning it. then, when you callshutdownNow(), the returned Runnables should be instances of your custom FutureTask. (it’s annoyting that you need to subclass FutureTask to be able to get at the underlying task, but that’s the way it is).