Wait()实际上是什么意思在Java?我会等你还是等你?

时间:2014-09-25 06:05:49

标签: java multithreading wait notify

根据我的理解,如果我是线程那么:

  • 当我拨打notify() / notifyAll()时,这意味着我正在向其他线程发送信号 正在等待这个对象监视器。我是对的吗?

  • 但是wait()意味着什么?

    我是否向其他线程发送信号等待,以便我可以完成我的工作?

    我宣布我会等你,你完成工作并告诉我什么时候完成。

我对线程有一点概念

2 个答案:

答案 0 :(得分:3)

不,这意味着想要等待通知。

根据Java docs(我的重点):

  

使当前线程等到另一个线程调用对象的notify()方法或notifyAll()方法。< / p>

答案 1 :(得分:1)

这意味着&#34;我宣布我会等待,你完成工作并告诉我你何时完成。&#34;

文件说,

使当前线程等待,直到另一个线程为此对象调用notify()方法或notifyAll()方法。换句话说,此方法的行为就像它只是执行调用wait(0)一样。 当前线程必须拥有此对象的监视器。该线程释放该监视器的所有权并等待,直到另一个线程通过调用notify方法或notifyAll方法通知等待该对象监视器的线程唤醒。然后该线程等待,直到它可以重新获得监视器的所有权并继续执行。

See this link