今天跟大家分享Java中的重入锁与读写锁的知识。
1 重入锁
先说说重入锁,既然说到了重入锁,那么也顺带提一下不可重入锁(自旋锁)吧。
这两个概念实际上很好区分,重入锁:
就如同在饭堂打饭,你在窗口排着队。排到你的时候,突然路人A让你顺带着打个饭吧,然后你就打了两份饭,这时候你还没离开窗口,又有路人B让你打一份汤,于是你又额外打了一份汤。
即:可重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。(本来想自己总结一下,发现不靠谱)
在Java中,ReentrantLock和Synchronized都是可重入锁。
/**
* Created by Anur Simon on 2020/03/10.
* Description :
*/
public class Restaurant {
private Lock windows = new