we (wait)for an hour and he still hasn't
we (wait)for an hour and he still hasn't turned up.我们等了一个小时,他还是没有出现。
wait英语中有等待的意思,在计算机领域它还是一种Java术语,C语言中也有wait命令。public final voidwait() throwsInterruptedException在其他线程调用此对象的notify()方法或notifyAll()方法前,导致当前线程等待。
换句话说,此方法的行为就好像它仅执行 wait(0)调用一样。 当前线程必须拥有此对象监视器。该线程发布对此监视器的所有权并等待,直到其他线程通过调用 notify方法,或 notifyAll方法通知在此对象的监视器上等待的线程醒来。
参数
此方法类似于一个参数的wait方法,但它允许更好地控制在放弃之前等待通知的时间量。用毫微秒度量的实际时间量可以通过以下公式计算出来: 1000000*timeout+nanos在其他所有方面,此方法执行的操作与带有一个参数的wait(long)方法相同。需要特别指出的是,wait(0, 0)与 wait(0)相同。
timeout毫秒值与 nanos毫微秒参数值之和指定的超时时间已用完。
然后,该线程等到重新获得对监视器的所有权后才能继续执行。 对于某一个参数的版本,实现中断和虚假唤醒是有可能的,并且此方法应始终在循环中使用: synchronized (obj) { while (<condition does not hold>) obj.wait(timeout, nanos);参数:timeout- 要等待的最长时间(以毫秒为单位)。 nanos- 额外时间(以毫微秒为单位,范围是 0-999999)。