1、什么是可重入锁(递归锁)?
同一个线程在外层方法获得锁,再进入该线程的内层方法时,会自动获得锁(前提是:锁对象必须是同一个对象)。
2、怎么理解可重入锁(递归锁)?
比如金庸里的张无忌,解锁了九阳神功,再去学其它武功秘籍,就没有任何的阻碍。又比如说,一个大院子,只要你有院子的钥匙,那么客厅、厨房、阳台这些公共的地方,随便你进。
3、可重入锁(递归锁)有什么优点?
可以一定程度上避免死锁。按照锁的机制,有加锁,必然会释放锁。但锁对象是同一个对象时,就没必要再去释放时,然后再获取锁。就像你自己想用钱,然后给自己打了一个欠条,这是不是很不合理。
4、哪些是可重入锁(递归锁)?
显示锁(ReentrantLock)和隐式锁(synchronized)都是可重入锁。