Linux 拨号vps windows公众号手机端

java中的sleep和wait怎么使用

lewis 6年前 (2019-02-13) 阅读数 18 #程序编程
文章标签 Javasleepwait

在Java中,sleep和wait都是用来控制线程的方法,但用途和使用方式有所不同。

  1. sleep方法:
  • sleep是Thread类中的一个静态方法,用于暂停当前线程的执行,让出CPU给其他线程执行。

  • sleep方法的使用方式:Thread.sleep(millis),其中millis表示暂停的时间(以毫秒为单位)。

  • sleep方法会让当前线程进入阻塞状态,但不会释放锁。

示例代码:

Thread.sleep(1000); //暂停1秒
  1. wait方法:
  • wait是Object类中的一个方法,用于使当前线程等待,直到其他线程调用notify或notifyAll方法唤醒它。

  • wait方法的使用方式:object.wait(),其中object是一个对象,调用该方法的线程会进入该对象的等待池。

  • wait方法会让当前线程进入阻塞状态,并释放锁。

示例代码:

synchronized (object) {
try {
object.wait(); //等待其他线程调用notify或notifyAll方法唤醒
} catch (InterruptedException e) {
e.printStackTrace();
}
}

需要注意的是,在调用wait方法之前,必须先获取对象的锁,否则会抛出IllegalMonitorStateException异常。

总结:

  • sleep方法是Thread类的方法,用于暂停线程的执行,不会释放锁。

  • wait方法是Object类的方法,用于使线程等待,直到其他线程唤醒,会释放锁。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门