12-结果分析
结果分析
本节实现了一个扩展 Thread
类的自定义的 MyThread
类。该类有3个字段,它们分别存储创建日期、执行的开始日期及结束日期。利用开始日期和结束日期,可以实现 getExecutionTime()
方法来返回线程为了执行任务所消耗的总时间。最后,重写 toString()
方法生成一条关于线程的信息。
一旦有了自己的线程类,就可以设计一个基于实现 ThreadFactory
接口的工厂类,并用它来创建对象。如果把工厂类视作为一个独立的对象来用,就不一定要强制地实现 ThreadFactory
接口,但如果想要让该工厂类可以集成Java并发API中的其他类,就必须要实现该接口。 ThreadFactory
接口只有一个方法: newThread()
方法。该方法接收一个 Runnable
对象作为参数并返回一个 Thread
对象来执行该 Runnable
对象。而在本案例中,它则返回了一个 MyThread
对象。
为了检查这两个类,设计了一个基于实现 Runnable
对象的 MyTask
类。它可以由 MyThread
对象管理的线程对象来执行。然后使一个执行 MyTask
实例的线程休眠2s。
在本案例的主方法中,利用一个 MyThreadFactory
的工厂对象可以创建一个用于执行一个 Task
对象的 MyThread
对象。如果运行本案例,则将会看见一条关于该线程的开始日期和执行时间的信息。
本案例生成的输出结果如下图所示。