阿里规约---为什么建议使用ThreadPoolExecutor自定义线程池创建线程池的四种方式newSingleThreadExecutor()newFixedThreadPool(int nThreads)newCachedThreadPool()newScheduledThreadPool(int corePoolSize)
创建线程池的四种方式newSingleThreadExecutor 创建一个拥有一个线程的线程池,该线程池的优点是保证事件的执行顺序(先进先出队列(FIFO)、后进先出(LIFO))newFixedThreadPool(int nThreads) 创建一个定长线程池,传进去的参数为可同时并发的线程数,超出的任务放进阻塞队列newScheduledThreadPool(int corePoolSize) 创建一个定长的能执行周期任务的线程池Executors.newCachedThreadPool