在Java中,可以使用CountDownLatch
类来等待计时器停止。CountDownLatch
是Java提供的一个同步工具类,它允许一个或多个线程等待其他线程完成操作后再继续执行。
下面是使用CountDownLatch
等待计时器停止的示例代码:
import java.util.concurrent.CountDownLatch;
public class TimerExample {
public static void main(String[] args) throws InterruptedException {
// 创建一个CountDownLatch实例,计数器初始值为1
CountDownLatch latch = new CountDownLatch(1);
// 创建一个计时器线程
TimerThread timerThread = new TimerThread(latch);
timerThread.start();
// 主线程等待计时器停止
latch.await();
System.out.println("计时器已停止");
}
}
class TimerThread extends Thread {
private CountDownLatch latch;
public TimerThread(CountDownLatch latch) {
this.latch = latch;
}
@Override
public void run() {
// 模拟计时器运行
try {
Thread.sleep(5000); // 假设计时器运行5秒
} catch (InterruptedException e) {
e.printStackTrace();
}
// 计时器停止后,调用countDown方法将计数器减1
latch.countDown();
}
}
在上面的示例中,首先创建了一个CountDownLatch
实例,并将计数器初始值设置为1。然后创建了一个计时器线程TimerThread
,并将CountDownLatch
实例传递给线程。在计时器线程中,模拟计时器运行5秒后停止,并调用countDown
方法将计数器减1。最后,在主线程中调用await
方法等待计数器变为0,即等待计时器停止。
这种方式可以确保主线程在计时器停止后再继续执行。
领取专属 10元无门槛券
手把手带您无忧上云