如何让一个正在执行的线程暂停?
Java的TimeUnit
枚举提供了一种更加可读和方便的方式来处理时间单位,包括天、小时、分钟、秒和毫秒等。我们可以使用TimeUnit
的sleep()
方法来让线程休眠,这个方法接受一个表示休眠时间的参数,和一个表示时间单位的TimeUnit
对象。
这是一个使用TimeUnit.SECONDS.sleep()
方法让线程休眠的例子:
import java.util.concurrent.TimeUnit;
public class SleepExample {
public static void main(String[] args) {
Thread task = new Thread(() -> {
System.out.println("Task started");
try {
TimeUnit.SECONDS.sleep(2); // 休眠2秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task finished");
});
task.start();
}
}
在这个例子中,我们创建了一个线程task
,它的任务是打印两条消息。在打印第一条消息后,我们让线程休眠2秒。我们使用TimeUnit.SECONDS.sleep(2)
来实现这个,它比Thread.sleep(2000)
更加易读,因为我们可以清楚地看到休眠的时间单位是秒。因此,输出结果如下:
Task started
(等待2秒)
Task finished
这个例子展示了如何使用TimeUnit
的sleep()
方法让一个线程休眠。