2、可重入原理:加锁次数计数器
3、可见性原理:Java内存模型
Ps:三步骤:
(1)从内存中读取(复制)变量;
(2)修改此变量(副本);
(3)把这个变量副本再写入内容中去替换原先被复制的变量。
六、Synchronized的缺陷
Ps:Lock锁可以克服synchronized的缺陷。
七、常见的面试问题
Ps:锁对象为空案例,因为锁是保存在对象头当中的,如果连对象都没有,那何来对象头。
Ps:死锁案例:
当A线程访问
锁1{
锁2{
}
}
当B线程访问
锁2{
锁1{
}
}
那么,很容易引发死锁问题。
最后,JAVA专家建议:一般情况下建议util包中的并发类(至少比我们自己的完善),接着使用 synchronized(减少编码,减少错误),如果要用到Lock独有的特性,最后再考虑使用Lock。
八、思考题
九、总结