Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
There are no guarantees beyond best-effort attempts to stop processing actively executing tasks. For example, typical implementations will cancel via {@link Thread#interrupt}, so if any tasks mask or fail to respond to interrupts, they may never terminate.
@return list of tasks that never commenced execution
@throws SecurityException if a security manager exists andshutting down this ExecutorService may manipulate threads that the caller is not permitted to modify because it does not hold {@link java.lang.RuntimePermission}("modifyThread"), or the security manager's checkAccess method denies access.