lock.acquire是否會等待获取锁相關問題
老師,關於lock.acquire是否會等待获取锁這方面我不是很明白,在分布式鎖的2-16節,lock.acquire是會等待获取锁的,但這邊這裡不會,我觀察了一下,兩部視頻的差別似乎在於會等待的是來自兩個不同的jvm,來自相同jvm的則好像不會等待,問題大概可分為下面3點
1.是不是相同jvm只會有一個thread的lock.acquire返回true? 所以n個jvm則最多可能有n個返回true?
2.返回false的就直接返回了? 而返回true則是在返回true前就block住了 直到可以運行時運行完才返回true?
3.結論是否可整理為 來自不同的jvm會阻塞等待,來自相同jvm的則不會阻塞等待?
在这里输入代码,可通过选择【代码语言】突出显示
24
收起
正在回答
1回答
lock.acquire 会等待锁的,这一节用的是zk的分布式锁,在acquire传了参数,超过了参数的时间,就会返回false。
不同jvm之间的锁就是分布式锁,需要借助第三方组件来完成,比如:redis,zookeeper。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星