标签: java multithreading java.util.concurrent
我无法理解链接JavaWorld
调用acquire()时不保持同步锁定,因为这会阻止项目返回池中。
请帮助我理解这一点。
答案 0 :(得分:3)
在文章和代码说明的上下文中,上面的行说明每当调用acquire()方法时,它实际上锁定资源尝试获得。为什么会这样?
信号量就像睡觉锁。当任务尝试获取已经持有的信号量时,信号量将任务置于等待队列并使任务进入休眠状态。
因为从信号量使用,您要求获取锁定,在队列中等待。只有在您真正获得资源时才会获得锁定。
答案 1 :(得分:0)
查看this动画视频,它可以帮助您