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)。虽然这种情况在实践中很少发生,但是应用程序必须通过以下方式防止其发生,即对应该导致该线程被提醒的条件进行测试,如果不满足该条件,则继续等待。
-
甲油胶黏稠了怎么办
甲油胶黏稠了可以用甲油稀释剂来稀释。取适量甲油稀释剂倒入甲油胶瓶中,然后盖紧甲油瓶盖,把甲油放在两手手心部位来回搓揉几分钟,再将甲油胶放在一边静置2个小时左右就可以继续使用了。使用甲油胶后,一定要将瓶子的盖子拧紧,让甲油胶处于一个密封的状态,这样可以避...
-
白色包包蹭黑了怎么办
1、双氧水去无:3%双氧水按1:5左右的比例用水稀释,加入几滴氨水或纯碱水溶液,软毛刷蘸该溶液轻刷即可。为进一步提高漂白效果,可将该溶液适当加温。该方法是利用氧化漂白以去除皮面上的颜色。2、蛋白液去污法:用一块干净的软布蘸上蛋白液擦拭,这样既可去污,又可以使皮...
-
凉鞋有放屁声怎么去掉
凉鞋放屁声解决办法:可以将凉鞋漏气处补上或将漏气处扩大;买增加摩擦力的鞋底垫护垫。凉鞋产生放屁声的原因是因为鞋底采用的是空心设计,而鞋底与地面由于长时间磨擦或者外力的原因将其磨破,这时候在走路时由于脚掌的用力,鞋底的气体会顺着破损的地方排出并发出噗噗...
-
虾青素传明酸白天可以使用吗
虾青素和传明酸白天可以使用。虾青素是一种抗氧化剂,传明酸是一种美白力度温和的美白成分。白天使用是没有问题的,倘若担心被晒黑的话,也可以做一些防晒工作。虾青素传明酸白天可以使用吗虾青素传明酸都是比较温和的,抗氧化、淡斑美白等效果都很不错,而且使用这种护...