使用java获取线程的执行进度
时间: 2024-01-27 15:06:15 浏览: 84
要获取Java线程的执行进度,可以使用Java中提供的 `Thread` 类来创建线程,并使用 `join()` 方法等待线程执行完成。在等待线程执行完成的过程中,可以使用 `System.currentTimeMillis()` 方法来获取当前的时间,从而计算出线程的执行进度。
具体实现代码如下:
```java
public class ThreadProgressDemo {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
// 模拟执行耗时任务
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(1000);
System.out.println("Task is running...");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();
// 获取线程执行进度
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(1000);
System.out.println("Thread progress: " + (i + 1) * 10 + "%");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 等待线程执行完成
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
在上述代码中,我们创建了一个线程,模拟执行了一个耗时任务。然后,在主线程中,我们每隔一秒钟输出一次线程的执行进度,最后等待线程执行完成。通过这种方式,我们可以获取线程的执行进度。
需要注意的是,我们在获取线程执行进度时,要使用 `Thread.sleep()` 方法来暂停当前线程的执行,否则可能会导致CPU过度占用。
阅读全文