javax.swing.Timer与java.util.Timer

时间:2013-05-08 17:31:26

标签: java

我听说只有在我实际构建javax.swing时才会使用所有Swing GUI类。 我想使用javax.swing.Timer而不是GUI来创建计时器循环。这是否意味着如果没有GUI我将使用java.util.Timer

在没有javax.swing.Timer的情况下使用GUI是否会出现大错误?它会导致一些性能错误或减速吗?

有哪些方法可以创建一个被动运行或不停止主线程的循环?

提前致谢!

2 个答案:

答案 0 :(得分:9)

  

在没有GUI的情况下使用javax.swing.Timer是否是一个大错误?它能导致吗?   一些性能错误或减速?

不,这不是一个大错误。但是,如果应用程序中没有运行ActionEvents线程,则与javax.swing.Timer关联的non-daemon将不会触发。如果应用程序中没有运行non-daemon线程,则程序将正常退出,而不会使javax.swing.Timer执行关联的actionPerformed方法。但GUI会导致JVM挂起并让Timer执行actionPerformed方法。
如果您不使用GUI,请确保在应用程序中运行了一些non-daemon线程。

  

创建一个可被动运行的循环有哪些方法?   没有停止主线程?

您可以使用java.util.Timer来实现此目的。但是现在java.util.concurrent提供了许多丰富的API来执行并发任务。所以,现在你应该为此目的转到ScheduledExecutorService API。

答案 1 :(得分:1)

是的,不推荐它,因为它是您需要的另一个依赖项。

您应该尝试尽可能少的依赖项。如果java.util.Timer满足您的需求,您一定要选择这个。