线程池是线程的管理机制,它主要解决两方面问题:
1. 复用线程
2. 控制线程数量
JUC是什么?
- 是 java.util.concurrent这个包,concurrent并发的意思,是 java的并发包,里面都是与多线程相关的API。线程池就在这个包里
创建线程池
```java //创建一个固定大小的线程池 ExecutorService threadPool = Executors.newFixedThreadPool(容量大小);
//交给线程池一个实现了Runnable的类对象,然后交了以后线程池会自己调用处理,就不用管了 threadPool.execute(Runnable command); ```
关闭线程池
- shutdown()
该方法调用后,线程不再接收新任务,如果此时还调用execute()则会抛出异常
并且线程池会继续将已经存在的任务全部执行完毕后才会关闭。(类比,商场关门了,不让进了,进的可以正常运行直到结束) - shutdownNow()
强制中断所有线程,来停止线程池(直接打断所有的线程,强制停止全部)