1.线程状态
2.线程池
2.1.基本原理
2.2.代码实现
2.3.代码实现--创建指定上限的线程池
newFixedThreadPool创建的线程池也是空的,参数表示最大值而不是初始值
2.4.自己创建线程池
2.5.参数解析
2.6.任务拒绝策略
- DiscardOldestPolicy 最大线程数都执行,然后队列以及队列外的选最后一个执行
- CallerRunsPolicy 自己执行不过来,请求别人执行
3.volatile
3.1.概述
注意:jdk版本对结果会有影响,12是控制台无输出,程序一直运行。1.8是控制输出结婚基金已经不是10万,程序运行结束
3.2.volatile
3.3.synchronized
4.原子性
4.1.概述
4.2.volatile和加锁
加锁是可以的
4.3.原子类
4.4.原子类内存解析
- 同步代码块慢,先判断锁,获取锁,执行代码,释放锁。
-
count++分为三步,执行每一步的时候,cpu执行权都有可能被抢走。我们希望这三步要么同是成功,要么同时失败。