怎么检测runnable线程执行完成
时间: 2024-01-28 15:05:47 浏览: 25
要检测Runnable线程的执行完成,可以结合使用Java中的线程和CountDownLatch类。通过创建一个CountDownLatch对象,将计数器初始化为1。然后在Runnable线程的run方法中,执行完成后调用CountDownLatch对象的countDown方法,将计数器减1。在主线程中调用CountDownLatch对象的await方法,等待计数器变为0,即表示Runnable线程已经执行完成了。具体实现可以参考下面的代码:
```
CountDownLatch latch = new CountDownLatch(1);
Runnable runnable = new Runnable() {
@Override
public void run() {
// 线程执行的代码逻辑
latch.countDown(); // 执行完成后,计数器减1
}
};
Thread thread = new Thread(runnable);
thread.start(); // 启动线程
// 等待线程执行完成
try {
latch.await(); // 等待计数器变为0
} catch (InterruptedException e) {
e.printStackTrace();
}
// 线程执行完成后,主线程继续执行
System.out.println("线程执行完成");
```
在上面的代码中,首先创建一个CountDownLatch对象,并将计数器初始化为1。然后创建一个Runnable对象,并在run方法中执行线程的代码逻辑,执行完成后调用CountDownLatch对象的countDown方法,将计数器减1。接着创建一个线程对象,并启动线程。在主线程中调用CountDownLatch对象的await方法,等待计数器变为0,即表示线程已经执行完成了。最后输出“线程执行完成”表示线程已经执行完成。