我想创建一个是 A 的类,TimerTask
也是一个Thread
. 我假设这个想法没有错。我这样做的原因在我在这里的帖子的“所需输出”部分中提到。
Java 类不能从两个类继承。那么,我该如何解决这个问题呢?
原因在我在问题中提到的帖子中。
实际输出: 所有定时器任务都在main方法中执行。我的主代码的最后一条打印语句在所有计时器任务执行之前显示。我不想要那个。
预期输出: 我希望 main 的结束打印语句出现在其他所有内容之后。
扩展 TimerTask 并实现 Runnable
重述原始问题后进行的编辑:检查https://stackoverflow.com/a/4951059/869488
你问错问题了。Java 中不可能实现多重继承,但这不是您的实际目标。
您想要的是等待多个定时任务完成的能力。有几种方法可以实现这一目标。
可能最直接的方法是使用 a ScheduledExecutionService
,它会Future
以类似于join
您习惯的方法的方式为您提供可以等待的 a 。
另一种方法是使用 aCountDownLatch
让每个计时器任务在完成时减少锁存器;然后,您可以使用await
.
还有一个是使用wait
和notify
原语自己构建同步的策略——你的问题也不难解决。
Java 不支持您想要的设计。
支持的设计是使用wait
而notify
不是加入TimerTask
线程(您不能这样做)。此 SO 问题下的示例:一个很好的小示例,用于演示 java 中的 wait() 和 notify() 方法
您可以实现 Runnable。
class BulbJob extends TimerTask implements Runnable
{
public void run()
{
}
}