sleep()和wait()的区别

2022-11-29  本文已影响0人  糯米团子123
  1. sleep()方法是数据Thread类的;wait()方法属于Object类
  2. sleep()在任何地方都可以使用,使用时需要捕获InterruptedException异常;wait()方法必须放在Synchronized同步块中执行,同样需要捕获InterruptedException异常。
  3. sleep()方法让线程休眠指定时间,到了时间会自动执行;wait()方法则是需要notify()、notifyAll()方法唤醒,获取对象锁后在执行,或者可以使用wait(long millis)方法,时间一到无需其他线程唤醒,也会重新竞争对象锁继续执行。
  4. sleep()一般用户线程休眠或者轮循暂停操作;wait()多用于多线程间通讯。
  5. sleep()不会释放对对象锁的持有;wait()释放当前线程对lock对象锁的持有
  6. sleep()会让出CPU执行时间,强制切换上下文;wait()不一定,wait()后还是可以重新竞争对象锁并执行。
上一篇 下一篇

猜你喜欢

热点阅读