Wait概述是什么(wait英语中有等待的意思)
【资料图】
内容摘要wait英语中有等待的意思,在计算机领域它还是一种Java术语,C语言中也有wait命令。publicfinalvoidwaitthrowsInterruptedException在其他线程调用此对象的notify方法或notifyAll方法前,导致当前线程等待。wait英文含有等待的意思,在计算机领域它还是一种Java术语,C语言里也有wait指令。那么网友们了解Wait简述是什么吗?下面一起来了解一下吧。
1.public final voidwaitthrowsInterruptedException在别的线程调用此对象的notify方法或notifyAll方法前,造成当前线程等待。也就是说,此方法的举动就像它仅执行wait调用一样。当前线程必须具备此对象监视器。该线程发布对此监视器的所有权并等待,直到其他线程通过调用notify方法,或notifyAll方法通知在此对象的监视器上等待的线程醒来。随后该线程将等到重新获得对监视器的所有权后才能执行。对于某一个参数版本,实现中断和虚假唤起是可能的,并且此方法应始终在循环中使用:synchronized(obj){while(conditiondoesnothold)obj。wait;抛出:IllegalMonitorStateException-假如当前线程不是此对象监视器的所有者。InterruptedException-假如在目前线程等待通知以前或者正在等待通知时,任何线程中断了当前线程。在抛出此异常时,当前线程的中断情况被清除。
2.当前线程必须具备此对象监听器。此方法造成当前线程(称作T)将其本身放置于对象的等待集中,随后放弃此对象上的所有同步要求。出于线程调度目的,当发生下列四种状况之一前,线程T被禁用,且处在休眠模式:其他某个线程调用此对象的notify方法,而且线程T恰巧被任选为被唤起的线程。
3.大概已经到达指定的实际时间。可是,假如timeout为零,则不考虑实际时间,在取得通知前该线程将一直等待。
4.随后,从对象的等待集中删掉线程T,并再次进行线程调度。随后,该线程以常规方式与其他线程竞争,以获得在该对象上同步权利;一旦得到对该对象的控制权,该对象上的所有其同步申明都将被恢复到之前的状态,这便是调用wait方法时的状况。随后,线程T从wait方法的调用中回到。因此,从wait方法回到时,该对象和线程T的同步情况与调用wait方法时的状况完全一致。在没有被通知、中断或超时的情形下,线程还能够唤起一个所谓的虚假唤起(spurious wakeup)。尽管这种情况在实践中很少发生,可是应用程序需要通过下列方法防止其发生,即对应当造成该线程被提示的条件进行测试,假如不满足该条件,则继续等待。
以上就是对于Wait简述是什么的相关内容。
标签: