我无法理解链接JavaWorld上提供的以下行的含义
调用 acquire() 时不会持有同步锁,因为这会阻止项目返回到池中。
请帮助我理解这一点。
在文章和代码解释的上下文中,上面这行表示,每当调用 acquire() 方法时,它实际上并没有锁定它试图获取的资源。为什么会这样?
信号量就像睡锁。当任务尝试获取已持有的信号量时,信号量将任务放入等待队列并使任务进入睡眠状态。
因为从信号量使用中,您请求获取锁,并在队列中等待。只有当您实际获得资源时,您才会获得锁。
看看这个动画视频它对你有帮助