Java中的四种线程池:
1、 缓存式线程池:判断池中是否有空闲线程,有则使用,无则创建线程
ExecutorService service = Executiors.newCachedThreadPool(run方法);
向线程池中加入新的任务:service.execute(new Runnable){} 一次一加
2、 定长线程池:有空闲则使用,没有空闲线程,则判断线程池是否已满,未满则创建线程,已满则等待线程空闲
ExecutorService service = Executiors.newFixedThreadPool(线程池长度);
向线程池中加入新的任务:service.execute(new Runnable){run方法}
一次一加
3、 单线程线程池:空闲则使用,无空闲线程,则等待池中线程空闲使用
ExecutorService service = Executors.newSingleThreadExecutor();
向线程池中加入新的任务:service.execute(new Runnable){} 一次一加
4、 周期性任务定长线程池:基本和定长线程池相同,不过有一个特殊效果:可以设定一个时间,等到或间隔这个时间时,线程池自动执行任务
ScheduledExecutorsService service = Executors.newScheduledThreadPool(线程池长度):
方法一:service.execute(new Runnable){}
参数一:定时执行的任务
参数二:时长
参数三:时长的时间单位,TimeUnit的常量指定
方法二:service.scheduleAtFixedRate(new Runnable){}
参数一:执行任务
参数二:延迟时长数字(第一次执行)
参数三:周期时长数字(两次执行间隔)
参数四:时长数字的单位