第二个答案为什么正确?什么异常被抛出,为什么?
P.S。感谢您的回答!
现在我看到t1.wait()
应该在synchronized(t1)
内-在t1上,该实例用于调用wait()。另外,this answer很有帮助。
这是来自here
的免费测试答案 0 :(得分:4)
由于此代码调用t1.wait
时未保持对t1
对象的锁定,因此IllegalMonitorStateException
将被引发-如Object::wait(time)
方法中所述。这是RuntimeException
,因此不必在方法签名中指定。 synchronized
方法上的Bees::go
将确保调用此方法的线程将锁定Bees
对象而不是t1
对象的锁。