首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在java中如何等待计时器停止?

在Java中,可以使用CountDownLatch类来等待计时器停止。CountDownLatch是Java提供的一个同步工具类,它允许一个或多个线程等待其他线程完成操作后再继续执行。

下面是使用CountDownLatch等待计时器停止的示例代码:

代码语言:java
复制
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,即等待计时器停止。

这种方式可以确保主线程在计时器停止后再继续执行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券