对象上的wait()
方法只能在同步上下文中调用,即当前线程必须锁定对象才能调用wait()
方法。现在,如果线程T1锁定了对象(obj
)并调用其等待方法obj.wait()
。其他线程如何锁定此对象(obj
)以便它们也可以调用wait,这已经拥有T1?
答案 0 :(得分:9)
wait
释放同步上下文。来自documentation:
当前线程必须拥有此对象的监视器。线程发布 此监视器的所有权并等待另一个线程通知 等待此对象的监视器唤醒的线程(...)
答案 1 :(得分:0)
您只需要在调用wait()方法的过程中进行同步,而不是在等待时间内同步。