教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

sleep()方法与wait()方法有什么区别?

更新时间:2023年03月02日10时30分 来源:传智教育 浏览次数:

好口碑IT培训

  让程序暂停执行一段时间,程序员们会经常使用sleep()方法。而wait()作为让程序暂停执行的常用方法,其特点是遇到程序交互的时候,如果线程对一个同步对象x发出一个wait()调用请求,则这个线程会暂停执行,被调对象进入等待状态,一直到被唤醒或者等待时间超时。

  详细概括起来,sleep()方法与wait()的区别在于:

  1.sleep() 方法是 Thread 类中的静态方法,它会使当前线程休眠指定的时间,单位是毫秒,然后再自动唤醒线程,线程进入就绪状态。而 wait() 方法是 Object 类中的实例方法,它会使当前线程暂停执行并释放锁,直到其他线程调用相同对象的 notify() 或 notifyAll() 方法唤醒线程并再次获取锁。

  2.sleep() 方法可以在任何地方使用,而 wait() 方法只能在同步块或同步方法中使用。

  3.sleep() 方法不会释放锁,即使它在同步块或同步方法中使用。而 wait() 方法会释放锁。

  4.wait() 方法可以通过传递超时时间来控制等待的时间,而 sleep() 方法只能通过休眠指定时间来控制等待的时间。

  5.wait() 方法只能在对象上调用,而 sleep() 方法可以在任何地方调用。

  总之,sleep() 和 wait() 都可以用来控制线程的执行,但是它们的用法和效果是不同的。sleep() 方法可以用于线程的暂停和延时,而 wait() 方法可以用于线程之间的同步和通信。

0 分享到:
和我们在线交谈!