温馨提示×

java线程wait和sleep怎么使用

小亿
87
2023-12-16 09:33:22
栏目: 编程语言

在Java中,wait()和sleep()方法都可以用于线程的控制和同步。

wait()方法是Object类的方法,它会使当前线程进入等待状态,直到其他线程调用该对象的notify()或notifyAll()方法唤醒它。wait()方法需要在synchronized块或方法中使用,因为它要求线程释放对象的锁。

示例代码:

synchronized (obj) {
    while (condition) {
        try {
            obj.wait(); // 当前线程进入等待状态
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    // 执行其他逻辑
    obj.notify(); // 唤醒等待的线程
}

sleep()方法是Thread类的静态方法,它会使当前线程进入休眠状态,暂停执行一段时间(以毫秒为单位),然后重新开始执行。sleep()方法不会释放对象的锁,所以可以在任何地方使用。

示例代码:

try {
    Thread.sleep(1000); // 当前线程休眠1秒
} catch (InterruptedException e) {
    e.printStackTrace();
}

需要注意的是,wait()和sleep()方法都会抛出InterruptedException异常,所以需要在调用它们的地方进行异常处理。

0