public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
}
newFixedThreadPool会创建一个线程池,此线程池只有一个工作线程。并且此工作线程没有超时时间,这意味着,除非调用pool.showdownnow,否则
此工作线程将永远不会回收,最终内存泄漏,所以要么把线程创建放到全局范围,要么线程池用完进行关闭