21-案例实现
案例实现
根据以下步骤完成本案例。
1.创建一个名为 ConsoleClock 的类,并实现 Runnable 接口:
public class ConsoleClock implements Runnable {
2.实现 run() 方法:
@Override
public void run(){
3.实现一个迭代10次的循环。在每一次迭代中,创建一个 Date 对象,并将其输出至控制台,然后,调用 TimeUnit 类 SECONDS 属性的 sleep() 方法,使当前线程的执行暂停1s。 sleep() 方法会抛出 InterruptedException 异常,因此程序中需要包含处理代码。中断异常的catch部分释放线程使用的资源,这是良好的编程习惯:
for (int i = 0; i < 10; i++) {
System.out.printf("%s\n", new Date());
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
System.out.printf("The FileClock has been interrupted");
}
}
}
4.在实现线程任务后,开始实现应用程序入口,创建包含 main() 方法的 Main 类:
public class Main {
public static void main(String[] args) {
5.创建一个 ConsoleClock 类对象和执行该对象的线程,然后开始执行线程:
ConsoleClock clock = new ConsoleClock();
Thread thread=new Thread(clock);
thread.start();
6.调用 TimeUnit 类 SECONDS 属性的 sleep() 方法,使得主线程休眠5s:
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
};
7.中断 ConsoleClock 线程:
thread.interrupt();
8.运行案例并查看结果。