进了大门 , 能不能直接进入具体坑位—可重入锁和不可重入锁
- ReetrantLock和Synchronized都是可重入锁 。如图所示 , 一共3个坑位 , 钥匙有3把 , 只要你拿到大门的钥匙 , 就可以进去蹲坑 。可重入锁很有好处的耶 , 试想一下 , 当你兴高采烈拿到大门钥匙的时候 , 总觉得下一秒就可以冲进去蹲坑 , 谁知道 , 里边的坑位还有锁 , 并且里边还排着一堆人 , 这时候 , 只能说你完了 , 完了 , 尿裤子了 , 等”si“吧 , 女票在外边等那么久都等不着你 , 等待超时 , 女票远走 。哦豁 , 都完了 。
- 一个坑位只能蹲一个人 , 你蹲了 , 我就不能蹲 。但洗手区 , 你可以洗 , 我可以洗 , 他可以洗 , 咱们可以一起洗 。ReentrantLock和Synchronized是排他的 , 我占了这个坑位 , 你就只能等着 。但ReadWriteLock不同 。虽然我拿了大门钥匙 , 但我只独占坑位 , 其他人想蹲坑需要等待 , 但只想洗洗小手的话 , 则大胆的往前走就阔以了 。所以也会经常发些 , 公厕常理来说是不关大门甚至没有大门锁的 , 只是每个坑位才有关门和开门的概念 。
- 自旋锁 , 就是你看着有人排队 , 然后你一直在队伍里边排着 , 直到你等到了一个坑位 , 然后离开 。炎炎烈日或者凛冽寒风 , 可怜的你就站在队伍里排着 , 很消耗生命体能的 。在程序里应该是耗费CPU吧 , 但也有好处 , 就是你可以第一时间拿到坑位 。适应性自旋锁 , 举个栗子吧:你现在看见有3个人进入大门进了小坑位了 , 这时候 , 突然有一个人出来洗小手手 , 但是突然她又进去蹲坑了—传说中的偏向锁 。这个时候是个人都会在这等的吧 , 希望就在不远的前方了 。—据说是轻量级的锁 。但是 , 万万没想到啊 , 这人也是蹲坑界的王者 , 你都等30分钟了 , 还没有出来 。等个鬼 , 咱不等了 。然后大喊一声:里边的勇士 , 假如出坑了 , 请大喊一声有坑位了 , 小的立马就来 。——好像是重量级的锁 。这时候 , 有好处也有坏处 。好处就是不用一直站着等啊 , 坏处就是得来回跑 , 其实哪个耗费体能多 , 还真说不准 , 看等待的时间长短吧 。
- 不知道有缘路过的众位勇士有木有经历过这么一个名场面 。厕所里边的人出不来 , 厕所外边的人进不去 , 大家一直在吵吵 , 有些本来想蹲坑后来又不想的人被困在里边 , 有些本来只是进去洗个小手手的人 , 也被困在里边 。我是在春运的时候 , 在火车站经历了N次这样的名场面 。这其实 , 就是一把开不了的锁 。而且除了有坑位的门这种有形的锁 , 还有想挤出来的人 , 和想挤进去的人之间形成的无形的锁 。也再次说明 , 锁是一个抽象概念 , 不是一个具体的实物 。在Java编码中也是一样的 , 并不一定是咱们声明了一把锁 , 比如用个Synchronized或者别的啥啥啥 , 才会有锁的出现 。比如说你明明就没百思特网有声明锁呀 , 结果整个进程都形成死锁了 。所以 , 但凡有资源竞争的地方 , 都不是挂了一把锁 , 才有锁的 , 锁是个保护机制 。
推荐阅读
- 分别进行是什么意思 分别是什么意思
- 女人说不是什么意思 不是什么意思
- 什么是发思特软件FastCAM加密狗? 加密狗是什么
- goke是什么意思 joke是什么意思
- 会忘记我吗的反义词 忘记的反义词是什么
- 学word有什么用 word是什么
- 追忆似水年华名句赏析 似水年华是什么意思
- 了字结构和部首是什么 的字的部首是什么
- 电脑重装后没声音了怎么办,电脑重装系统后没有声音怎么办