标签:对象 面经 long 线程 sleep 唤醒 wait
共同点:
wait(),wait(long),sleep(long)的效果都是让当前线程暂时放弃CPU的使用权,进入阻塞状态。
不同点:
方法归属不同
sleep(long)是Thread的静态方法。
wait,wait(long)都是Object的成员方法,每个对象都有。
醒来时机不同
sleep(long)和wait(long)的线程都会在等待响应的毫秒数后醒来。
wait()和wait(long)还可以被notify()唤醒,wait()如果不唤醒就会一直等下去。他们都可以被打断唤醒。
锁特性不同
wait方法的调用必须先获取wait对象的锁,而sleep无此限制。
wait方法执行后会释放对象锁,允许其他线程获得该对象锁(我放弃,但你们还可以用)
sleep如果在synchronized代码块中执行,不会释放对象锁(我放弃,但你们也用不了)
标签:对象,面经,long,线程,sleep,唤醒,wait 来源: https://www.cnblogs.com/lysboke/p/16619924.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。