线程池
Executors 用来创建线程池的类
单线程池:newSingleThreadExecutor( )
只能有一个线程的线程池,必须要等待执行玩一个任务,才能执行下一个任务
固定大小线程池:newFixedThreadPool(线程的数量)
1.如果任务数少于线程个数,所有任务都同时执行
2.如果任务数多于线程个数,最多先执行线程个数的任务,其他任务暂时等待,当线程执行完当前任务之后,再去执行正在等待的任务
缓存线程池:newCacheThreadPool( )
可以根据任务数量来创建线程,接收一个任务创建一个线程;如果当前线程中有任务执行完毕,再接收任务时会用执行完毕的线程,不会创建新的线程。
可以执行延时任务的线程池:newScheduledThreadPool(线程的数量)
本质上是固定线程个数的线程池,可以执行延时任务。