线程池默认创建的是用户态线程, 使用完需要手动调用shutdown关闭, 否则用户态线程会阻塞JVM退出. 程序会一直挂在那里.
如果既不想阻塞JVM, 又不想调用shutdown, 那可以把线程设置为demon, 当JVM退出时,发现没有用户态线程存在了, 就会进入JVM关闭流程. 但是这样用并不正确, 线程池的回收, 以及其它的资源回收应该创建它的人来负责, 因为这里涉及到 优雅关闭和一些业务相关的回收细节, 靠JVM暴力关闭是不对的.