可重入锁

来源:互联网 发布:淘宝新店手机号码采集 编辑:程序博客网 时间:2024/06/10 19:49

这里讲的是广义上的可重入锁,而并非仅仅JAVA下的ReentrantLock

 

可重入锁指的是在一个线程中可以多次获取同一把锁,比如:
一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法,则该线程可以直接执行调用的方法,而无需重新获得锁;

 

此线程对同一个同步监视器重复加锁的过程.每个同步监视器对应的锁都有一个计数器,用来记录递归加锁的次数(每加锁一次计数器加一,每解锁一次计数器减一),即正向加锁多少次就要逆向解锁多少次(否则此同步监视器还是被锁定状态)

 

JAVA环境下 ReentrantLock synchronized都是可重入锁.

 

可重入锁最大的作用是避免死锁

引用:

https://www.zhihu.com/question/23284564