Thread的sleep方法和wait方法的区别
2013-05-24 17:21
253 查看
1. sleep和wait都是使线程暂时停止执行的方法,但它们有很大的不同,sleep是线程类Thread 的方法,它是使当前线程暂时睡眠,可以放在任何位置。而wait是Object类的方法,它是使当前线程暂时放弃对象的使用权进行等待,必须放在同步方法或同步块里。
2. sleep使用的时候,线程并不会放弃对象的使用权,即不会释放对象锁,所以在同步方法或同步块中使用sleep,一个线程访问时,其他的线程也是无法访问的。而wait是会释放对象锁的,就是当前线程放弃对象的使用权,让其他的线程可以访问。
3. 线程执行wait方法时,需要另一个线程调用notify进行唤醒。而sleep只是暂时休眠一定时间,时间到了之后,自动恢复运行,不需另外的线程唤醒。
2. sleep使用的时候,线程并不会放弃对象的使用权,即不会释放对象锁,所以在同步方法或同步块中使用sleep,一个线程访问时,其他的线程也是无法访问的。而wait是会释放对象锁的,就是当前线程放弃对象的使用权,让其他的线程可以访问。
3. 线程执行wait方法时,需要另一个线程调用notify进行唤醒。而sleep只是暂时休眠一定时间,时间到了之后,自动恢复运行,不需另外的线程唤醒。
相关文章推荐
- Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
- java object的wait和Thread的sleep方法区别
- java object的wait和Thread的sleep方法区别
- 【Java之多线程(二)】(***重要***)Java多线程中常见方法的区别,如object.wait()和Thread.sleep()的区别等
- Java - Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
- Thread类的sleep()方法和对象的wait()方法区别
- Thread类的sleep()方法和对象的wait()方法都能使线程暂停执行,他们有什么区别?
- java.lang.Thread.sleep()方法和java.lang.Object.wait()方法的区别--有道笔记整理
- 浅谈Java多线程中的Thread.sleep()和wait()方法的区别
- Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
- java object的wait和Thread的sleep方法区别
- java.lang.Thread.sleep()方法和java.lang.Object.wait()方法之间的区别
- thread中sleep和wait方法的区别,以及lock和synchronized的区别
- java.lang.Thread sleep(),wait()方法的区别。
- java.lang.Thread.sleep()方法和java.lang.Object.wait()方法之间的区别
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- JAVA多线程之——wait/yield/sleep/join方法的区别
- JAVA 中sleep和wait()方法区别
- JAVA线程sleep和wait方法区别
- java 中的 wait()方法和 sleep()方法的区别是什么?