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)。虽然这种情况在实践中很少发生,但是应用程序必须通过以下方式防止其发生,即对应该导致该线程被提醒的条件进行测试,如果不满足该条件,则继续等待。
-
气垫BB好用吗
好用,有遮瑕、调整肤色、隐藏毛孔的效果,是非常不错的一款打造轻薄底妆的产品。使用步骤一:用前洁面在使用BB之前我们还需要对我们的面部进行一个全面的清洁,也就是洗脸。为了能过彻底的清洁,建议最好可以使用洗面奶来进行面部的清洁工作。使用步骤二:易出油区域多涂...
-
维生素a膏抹脸的作用
维生素a膏抹脸能够光滑肌肤、缩小毛孔、延缓衰老,对一些痘痘、粉刺、痤疮等肌肤问题有不错的改善效果。它还可以促进表皮细胞更新,调节表皮细胞增殖和分化,让肌肤角质层细胞变得更加疏松,容易脱落。维生素a膏是什么维生素a膏与维a酸乳膏是一样的,维生素A软膏用于痤...
-
怎样去屑
如果是病理性头皮屑,建议使用药物。如果是生理性头屑,要保持良好的作息以及饮食习惯,避免熬夜。定期清洗你的头发,但不要太频繁。头皮屑是由于你的头皮的死皮细胞,它不是头发本身造成的。去头屑最好的办法,首先就是要学会正确的洗头,不要使用刺激性强、碱性大的洗发水...
-
颈霜可以当面霜用吗
颈霜不可以当面霜用。因为颈霜和面霜的护肤效果不同,而且颈部肌肤和面部肌肤本身的需求也不同,所以需要有针对性地使用护肤品。颈霜是针对颈部肌肤的,而面霜才是专门针对脸部肌肤的,如果直接将颈霜当面霜涂抹在脸上,那护肤效果肯定是没有面霜好的。颈霜和面霜是两种...