繁体   English   中英

javax.swing.Timer与java.util.Timer

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM