介绍
本篇文章给大家分享的是有关Java项目中中睡眠()与()等有什么不同,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
对于睡眠()<代码> 代码>方法,我们首先要知道该方法是属于线程类中的。而<代码>等()代码>方法,则是属于对象类中的。
<代码>睡眠()代码>方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。
在调用睡眠()<代码> 代码>方法的过程中,线程不会释放对象锁。
而当调用<代码>等()代码>方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用<代码>通知()代码>方法后本线程才进入对象锁定池准备
获取对象锁进入运行状态。
什么意思呢?
/* * * */包com.b510.test;/* * java中*的睡眠等()和()的区别 * @author Hongten * @date 2013-12-10 */公开课TestD { 公共静态void main (String [] args) { 新线程(新Thread1 ()) .start (); 尝试{ thread . sleep (5000); }捕捉(异常e) { e.printStackTrace (); } 新线程(新Thread2 ()) .start (); } 私有静态类Thread1实现Runnable { @Override 公共空间run () { 同步(TestD.class) { System.out.println(“进入thread1…“); System.out.println (“thread1是等待…“); 尝试{//调用wait()方法,线程会放弃对象锁,进入等待此对象的等待锁定池 TestD.class.wait (); }捕捉(异常e) { e.printStackTrace (); } System.out.println (“thread1是>输入thread1…… thread1是等待…… 进入thread2 .... thread2是睡眠.... thread2会> TestD.class.notify ();
<强>运行效果:强>
输入thread1…… thread1是等待…… 进入thread2 .... thread2是睡眠.... thread2会>以上就是Java项目中中睡眠()与()等有什么不同,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。Java项目中中睡眠()与()等有什么不同