![](/img/trans.png)
[英]javax.swing.Timer vs java.util.Timer inside of a Swing application
[英]javax.swing.Timer vs java.util.Timer
我听说只有在Iam实际构建Swing GUI
才能使用所有javax.swing
类。 我想在没有GUI
情况下使用javax.swing.Timer
来创建定时器循环。 这是否意味着没有GUI我应该使用java.util.Timer
?
没有GUI
使用javax.swing.Timer
是大错误吗? 它会导致一些性能错误或减速吗?
有什么方法可以创建一个被动运行或不停止主线程的循环?
提前致谢!
没有GUI使用javax.swing.Timer是大错误吗? 它会导致一些性能错误或减速吗?
不,这不是一个大错误。 但是,如果应用程序中没有运行non-daemon
线程,则不会触发与javax.swing.Timer
关联的ActionEvents
。 如果应用程序中没有运行non-daemon
线程,则程序将正常退出而不使javax.swing.Timer
执行关联的actionPerformed
方法。 但GUI会导致JVM挂起并让Timer
执行actionPerformed
方法。
如果您不使用GUI,请确保在应用non-daemon
运行了一些non-daemon
线程。
有什么方法可以创建一个被动运行或不停止主线程的循环?
您可以使用java.util.Timer
来实现此目的。 但是现在java.util.concurrent
提供了许多丰富的API来执行并发任务。 因此,现在您应该为此目的转到ScheduledExecutorService
API。
是的,不推荐它,因为它是您需要的另一个依赖项。
您应该尝试尽可能少的依赖项。 如果java.util.Timer
满足您的需求,您一定要选择这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.