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.运行案例并查看结果。