黑马程序员技术交流社区
标题:
多线程状态
[打印本页]
作者:
刘琦
时间:
2013-3-16 13:01
标题:
多线程状态
多线程中slepp()和wait()到底有何不同?在多线程中怎么用?都一样吗?
作者:
itserious
时间:
2013-3-16 13:19
多线程中slepp()和wait()到底有何不同?在多线程中怎么用?都一样吗?
注意:
1. sleep() 是一个静态方法,可以直接 Thread.sleep() 不用创建Thread 对象。
2. sleep() 会抛 throws InterruptedException
3. sleep() 中必须面指定参数。Thread.sleep( long millis); 而wait() 可以不指定参数,会有一个默认值wait(0)
4. sleep() 不会释放CPU执行资格,而wait( long timeout )会释放CPU执行资格 直到被人notify(); 或notifyAll()唤醒,才会重新获得CPU的执行资格。
作者:
123
时间:
2013-3-16 14:00
1:sleep()方法是让当前正在执行的线程暂停一段时间,进入阻塞状态,在其休眠状态内,即使系统中没有其他可执行的线程,处于sleep()的线程也不会执行行,使用sleep(方法会抛出异常,所以调用sleep()方法时需要捕捉异常,要么就显示声明异常。
2:wait()方法是用于被synchronized修饰的方法或者代码块内线程通信的,导致当前线程等待,释放对该同步监视器的锁定,一般都是和notify()或notifyAll()配合使用。
从上面就可以看出,两者用的区别,希望我的回答会对你有帮助,共同进步,哈哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2