线程池程序不会结束与shutdown有关
使用线程池时,在main完成之前没的调用shutdonw使得,java进程不会结束。线程池默认的线程不是“守护线程”,线程池的timeout 大于 0时,code数量的线程是不会终止的。所以,当所有任务完成后,java程序不会结束。
ExecutorService.shutdown()将使之前通过Executor.execute()提交的任务运行结束后关闭线程池。ExecutorService还提供了一个与ExecutorService.shutdown()对应的方法名为ExecutorService.shutdownNow()该方法试图将结束已经提交的任务并结束线程池。