线程池的重要性
什么是池?
软件中的池,可以理解为计划经济
为什么使用线程池?
1.反复创建线程开销大
2.过多的线程会占用太多的内存
用少量的线程——避免内存占用过多
让这部分线程都保持工作,且可以反复执行任务——避免生命周期的损耗
应用场合
创建和停止线程池
线程池构造方法的参数
添加线程的规则
增减线程的特点
工作队列
常见的队列类型
1.直接交接:SynchronousQueue
2.无界队列:LinkedBlockingQueue
3.有界队列:ArrayBlockingQueue
4.延迟队列:DelayedWorkQueue
线程池手动创建还是自动创建
自动创建(即直接调用JDK封装好的构造方法)
1.newFixedThreadPool
package threadpool; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 演示newFixedThreadPool * 固定的线程数 */ public class FixedThreadPoolTest { public static void main(String[] args) { ExecutorService executorService = Executors.newFixedThreadPool(4); for (int i = 0; 0 < 1000 ; i++){ executorService.execute(new Task()); } } } // 任务类 class Task implements Runnable{ @Override public void run() { try { Thread.sleep(