java多线程完成电子时钟案例
时间: 2023-06-28 13:04:23 浏览: 176
下面是一个简单的电子时钟案例,使用Java多线程实现:
```java
import java.util.Calendar;
public class ElectronicClock implements Runnable {
private Thread thread;
private boolean stop = false;
public ElectronicClock() {
thread = new Thread(this);
thread.start();
}
public void run() {
while (!stop) {
// 获取当前时间
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
// 输出时间
System.out.printf("%02d:%02d:%02d\n", hour, minute, second);
// 等待1秒钟
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void stop() {
stop = true;
}
public static void main(String[] args) {
ElectronicClock clock = new ElectronicClock();
// 运行10秒钟后停止时钟
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
clock.stop();
}
}
```
在这个例子中,我们创建了一个`ElectronicClock`类,实现了`Runnable`接口,表示这个类是一个可以运行的线程。在构造函数中,我们创建了一个新的线程并启动它。`run()`方法中,我们使用`Calendar`类获取当前的小时、分钟和秒,并将它们输出到控制台上。然后我们调用`Thread.sleep(1000)`使线程休眠1秒钟,然后再次获取当前时间,输出时间,以此类推。`stop()`方法用于停止时钟。
在`main()`方法中,我们创建了一个`ElectronicClock`实例并启动它。然后我们让程序休眠10秒钟,最后调用`stop()`方法停止时钟。
阅读全文