线程池:就是一个存放多个线程的容器。容器中的线程不需要我们去创建,使用完线程以后回收即可,不销毁。
目的是为了节约系统开销 - 所以通常线程池是不关闭的,但是可以关闭。
jdk5.0版本推出的
注意:
- 不要设置太多的空闲线程,通常按照比需求稍微多一些就可以了
- 线程池是否需要关闭这个要看具体的需求
线程安全问题:
同步:线程安全 - 效率低
异步:线程不安全 - 效率高
解决线程安全问题实际上就是把异步转为同步。
Java中的线程安全处理方式:synchronized
这个关键字可以修饰代码块和方法
修饰代码块 - 同步代码块
修饰方法 - 同步方法
(1)锁对象 - Object:利用一个对象去锁住目标
(2)对象锁 - 锁住一个对象