如果一个方法在wait语句中被阻塞,那么另一个线程是否可以调用该方法/是否将执行print语句?谢谢
synchronised test() { sysout("not blocked"); wait(); }
zzlelutf1#
一个常见的误解是方法被锁定。事实上 this 已锁定。这意味着您可以为不同的对象调用相同的方法,而无需使用 wait() 相反,如果一个线程获得了锁,这将排除该对象的任何其他方法中的任何其他锁定部分。等待线程释放当前锁,以便其他方法可以获得同一对象上的锁。这也意味着线程必须重新获取锁才能停止等待。
this
wait()
1条答案
按热度按时间zzlelutf1#
一个常见的误解是方法被锁定。事实上
this
已锁定。这意味着您可以为不同的对象调用相同的方法,而无需使用wait()
相反,如果一个线程获得了锁,这将排除该对象的任何其他方法中的任何其他锁定部分。等待线程释放当前锁,以便其他方法可以获得同一对象上的锁。这也意味着线程必须重新获取锁才能停止等待。