线程 - 等待()

时间:2011-09-11 17:49:20

标签: java multithreading thread-safety

对象上的wait()方法只能在同步上下文中调用,即当前线程必须锁定对象才能调用wait()方法。现在,如果线程T1锁定了对象(obj)并调用其等待方法obj.wait()。其他线程如何锁定此对象(obj)以便它们也可以调用wait,这已经拥有T1?

2 个答案:

答案 0 :(得分:9)

wait释放同步上下文。来自documentation

  

当前线程必须拥有此对象的监视器。线程发布   此监视器的所有权并等待另一个线程通知   等待此对象的监视器唤醒的线程(...)

答案 1 :(得分:0)

您只需要在调用wait()方法的过程中进行同步,而不是在等待时间内同步。