reentrantLock重入锁问题

按道理来说应该是主线程两次解锁后才能进入线程二,为什么在第一次解锁后,Debug调试时就已经进入到了线程二,并且这时候为啥线程二不需要解锁呢
线程学着好难呀,呜

img

img

两次lock没意义呀,只要上了锁标识符就是1了
ReentrantLock实际用的是一个volatile表示上锁解锁,上锁的时候cas把state从0更新为1,再上锁他也还是1,所以不存在两次上锁需要两次解锁

img


这2行交换一下位置 就是你想的那个结果了。
上锁是说的获取锁后面的代码,锁前面的代码又不影响