【发布时间】:2013-05-07 21:19:01
【问题描述】:
基本上,如果我在监视器中有很多同步方法。这会有效避免死锁吗?
【问题讨论】:
标签: process resources synchronization deadlock monitor
基本上,如果我在监视器中有很多同步方法。这会有效避免死锁吗?
【问题讨论】:
标签: process resources synchronization deadlock monitor
一般来说,不,它不能保证不存在死锁。请查看 Deadlocks and Synchronized methods 和Deadlock in Java 的代码示例。具有同步方法的 A 和 B 两个类只会产生完美的死锁。
另外,在我看来,您的措辞“使用同步方法的 Java 监视器”虽然在概念上是正确的,但与 Java 中接受的措辞略有不同。例如 java.lang.Object.wait() javadoc 以下列方式放置:
"当前线程必须拥有这个对象的监视器"
这暗示 object 和 monitor 不是一回事。相反,监视器是我们无法直接看到或处理的东西。
【讨论】: