线程安全与锁优化
文章平均质量分 89
勇往直前120
这个作者很懒,什么都没留下…
展开
-
java锁的常见面试题
1、Lock锁和synchronized锁的区别 Lock锁是对象,而synchronized是java关键字 Lock锁需要手动加锁释放锁,synchronized的该操作是全自动的。对于异常前者需要手动释放锁,不然容易导致死锁。而后者由jvm自动管理。 Lock锁的属性可以配置,而synchronized只能是可重入的、非公平的、不可中断的。 在实现原理上synchronized主要是基于对象的monitor。而Lock的实现是java层面的,基础是AQS 2、wait和sleep的区别 wa原创 2021-08-11 17:08:45 · 1278 阅读 · 0 评论 -
线程安全与锁优化
1、线程安全与锁优化 不把线程安全当作一个非真即假的选项,从线程安全的程度上由强到弱可以排序为: 不可变,绝对线程安全,相对线程安全,线程兼容,线程对立。 不可变的对象一定是线程安全的,因为不可变在多线程中不可以修改,因此不可变对象在外部的可见状态不会变。基本类型可以使用final来保证它不可变,引用类型自行保证不会对其状态发生改变,参考(String,Integer等类,将内部状态变量设置为final)。 绝对线程安全 不管运行环境如何,调用者都不...原创 2021-07-15 21:01:29 · 157 阅读 · 0 评论