线程池
一、原因
每一个线程的启动和结束都比较消耗时间和占用资源,如果系统中有很多线程,大量的启动和结束动作会导致系统性能下降,相应变慢。
为了解决上述问题,引入线程池的思想。
二、原理

1、准备任务容器
2、初始化创建数个线程,让他们保持等待
3、当有外部线程往容器中扔来一个“任务”,就会有一个线程被唤醒
4、该线程提取任务并执行任务,执行完毕后线程不结束而是保持等待
三、JAVA自带线程池
ThreadPoolExecutor threadPool= new ThreadPoolExecutor(10, 15, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
第一个参数10 表示这个线程池初始化了10个线程在里面工作
第二个参数15 表示如果10个线程不够用了,就会自动增加到最多15个线程
第三个参数60 结合第四个参数TimeUnit.SECONDS,表示经过60秒,多出来的线程还没有接到活儿,就会回收,最后保持池子里就10个
第四个参数TimeUnit.SECONDS 如上
第五个参数 new LinkedBlockingQueue() 用来放任务的集合
execute方法用于添加新的任务
浙公网安备 33010602011771号