跳到主要内容

简述如何让正在运行的线程暂停一段时间 ?

参考答案:

在Java中,你可以使用Thread.sleep()方法让正在运行的线程暂停一段时间。这是一个静态方法,可以使得当前正在执行的线程暂停指定的毫秒数。这个方法会抛出一个InterruptedException,所以你需要处理这个异常。

下面是一个简单的例子:

try {
    Thread.sleep(1000); // 暂停1秒
} catch (InterruptedException e) {
    e.printStackTrace();
}

注意,Thread.sleep()方法并不保证线程会在你指定的时间后立即恢复执行。它只是使得线程在至少指定的时间内不会执行。实际的暂停时间可能会稍微长一些,这取决于操作系统的调度策略。

另外,Thread.sleep()方法不会释放任何锁,所以如果你的线程持有了某个对象的锁,那么在调用Thread.sleep()方法后,其他线程仍然无法访问这个对象,直到你的线程恢复执行并释放了锁。

对于需要更复杂的线程同步和暂停/恢复操作,你可能需要使用更高级的并发工具,比如java.util.concurrent包中的LockConditionSemaphoreCyclicBarrier等。