当前位置:嗨网首页>书籍在线阅读

12-结果分析

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

结果分析

本节实现了一个扩展 Thread 类的自定义的 MyThread 类。该类有3个字段,它们分别存储创建日期、执行的开始日期及结束日期。利用开始日期和结束日期,可以实现 getExecutionTime() 方法来返回线程为了执行任务所消耗的总时间。最后,重写 toString() 方法生成一条关于线程的信息。

一旦有了自己的线程类,就可以设计一个基于实现 ThreadFactory 接口的工厂类,并用它来创建对象。如果把工厂类视作为一个独立的对象来用,就不一定要强制地实现 ThreadFactory 接口,但如果想要让该工厂类可以集成Java并发API中的其他类,就必须要实现该接口。 ThreadFactory 接口只有一个方法: newThread() 方法。该方法接收一个 Runnable 对象作为参数并返回一个 Thread 对象来执行该 Runnable 对象。而在本案例中,它则返回了一个 MyThread 对象。

为了检查这两个类,设计了一个基于实现 Runnable 对象的 MyTask 类。它可以由 MyThread 对象管理的线程对象来执行。然后使一个执行 MyTask 实例的线程休眠2s。

在本案例的主方法中,利用一个 MyThreadFactory 的工厂对象可以创建一个用于执行一个 Task 对象的 MyThread 对象。如果运行本案例,则将会看见一条关于该线程的开始日期和执行时间的信息。

本案例生成的输出结果如下图所示。

63.png