2016 - 2024

感恩一路有你

线程锁synchronized 可重入锁的原理?

浏览量:2319 时间:2021-03-11 03:54:05 作者:admin

可重入锁的原理?

重入锁实现的原理或机制如下:

每个锁都与一个线程保持器和一个计数器相关联。当计数器为0时,表示锁没有被任何线程持有,那么任何线程都可以获得锁并调用相应的方法。当线程请求成功时,JVM将记录持有锁的线程,并将计数器设置为0 1。此时,如果其他线程请求锁,则必须等待;如果持有锁的线程再次请求锁,则可以再次获得锁,计数器将增加;当线程退出同步代码块时,计数器将减少;如果计数器为0,则释放锁。

如何理解Java锁的可重入性?

可重入锁:支持重复输入的锁。这意味着锁可以支持线程对资源的重复锁定。

关键字“sychronized”隐式支持重入,例如使用sychronized修改的递归方法。在方法执行期间,执行线程在获取锁之后可以多次获取锁。

尽管reentrantlock不能像sychnronized关键字那样隐式地重新输入,但是在调用lock()方法时,获得锁的线程可以再次调用lock()方法来获得锁,而不会被阻止。

线程锁synchronized synchronized锁升级 synchronized详解

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。