- sleep()方法是数据Thread类的;wait()方法属于Object类
- sleep()在任何地方都可以使用,使用时需要捕获InterruptedException异常;wait()方法必须放在Synchronized同步块中执行,同样需要捕获InterruptedException异常。
- sleep()方法让线程休眠指定时间,到了时间会自动执行;wait()方法则是需要notify()、notifyAll()方法唤醒,获取对象锁后在执行,或者可以使用wait(long millis)方法,时间一到无需其他线程唤醒,也会重新竞争对象锁继续执行。
- sleep()一般用户线程休眠或者轮循暂停操作;wait()多用于多线程间通讯。
- sleep()不会释放对对象锁的持有;wait()释放当前线程对lock对象锁的持有
- sleep()会让出CPU执行时间,强制切换上下文;wait()不一定,wait()后还是可以重新竞争对象锁并执行。
sleep()和wait()的区别
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 问:简单说说 Java 中 sleep() 与 wait() 方法的区别? 答:sleep() 方法使当前线程进入...