**63.线程状态
添加主线程和子线程
** 65.线程状态
核心线程和任务队列都是有上限的,所以都满了话就开始使用救急线程;
救急线程也是有上限的,如果再来新的线程的话就需要拒绝策越;
注意:这里不需要等待5000ms,几乎是同时打印
注意:这里需要等待5000ms才会释放对象锁(两条打印时间有5000ms)
**71.lock线程阻塞
公平和非公平演示:
注意:这样写如果获取锁失败的话,立即退出而不会进入队列,以至于将内存撑爆。
注意:源码中有两个版本
tryLock(最长响应时间):可以使用公平锁和非公平锁
tryLock():总是使用了非公平锁
lock条件变量演示:
**73. lock条件变量演示
原子性:
可见性:
**76.可见性
**77.可见性解决方法 79 80
注意:使用cas的时候balance需要volatile修饰,因为cas虽然保证原子性,还需要配合使用volatile保证可见性
Hashtable:
注意:它的容量是质数(质数的hash分散性比较好,不需要二次hash),不是2n次方所以不需要二次hash
concurrentHashMap
**87.演示Segment索引计算
注意:这体现了设计模式中的原型模式
1.7和1.8的不同
ThreadLocal
**96.97 ThreadLock原理