Synchronized用过吗?其原理是什么
1. 可重入性
synchronized的锁对象中有一个计数器(recursions变量)会记录线程获得几次锁;
可重入的好处:
- 可以避免死锁;
- 可以让我们更好的封装代码;
- synchronized是可重入锁,每部锁对象会有一个计数器记录线程获取几次锁,在执行完同步代码块时,计数器的数量会-1,直到计数器的数量为0,就释放这个锁。
2. 不可中断性
- 一个线程获得锁后,另一个线程想要获得锁,必须处于阻塞或等待状态,如果个线程不释放锁,第二个线程会一直阻塞或等待,不可被中断;
- synchronized 属于不可被中断;
- Lock lock方法是不可中断的;
- Lock tryLock方法是可中断的。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
今日已有369人领取成功

相关推荐HOT

举例说明什么情况下会更倾向于使用抽象类而不是接口?
接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。下面有几个点可以帮助你回答这个问...详情>>
2022-11-07 14:34:20
实例化创建对象有哪几种方式
1. new2. clone()3. 通过反射机制创建4. 序列化反序列化。反射示意代码:// Class.forName方法获取类,在调用类的newinstance()方法 Class cls ...详情>>
2022-11-07 14:33:23
byte类型127+1等于多少
byte的范围是-128~127。字节长度为8位,最左边的是符号位,而127的二进制为01111111,所以执行+1操作时,01111111变为10000000。大家知道,计算...详情>>
2022-11-07 14:31:57
float和double的区别是什么?
40E+38 双精度浮点数的表示范围:-1.4 在程序中处理速度不同 一般来说,CPU处理单精度浮点数的速度比双精度浮点数的速度快;4是双精度浮点数,...详情>>
2022-11-07 14:31:04热门推荐
HashMap与ConcurrentHashMap的区别
沸线程和进程区别
热JVM 是如何处理异常的?
热如何实现跨域?说一下JSONP实现原理?
新企业真实面试:父子类之间到底是怎么实例化的?
什么是 Spring Boot?Spring Boot 有哪些优点?
你了解过哪些同步器?请分别介绍下
新手java编程什么软件好
JVM 对Java的原生锁做了哪些优化?
Synchronized用过吗?其原理是什么
说说Java的命名规范
举例说明什么情况下会更倾向于使用抽象类而不是接口?
实例化创建对象有哪几种方式
byte类型127+1等于多少
技术干货






