我听说只有在我实际构建javax.swing
时才会使用所有Swing GUI
类。
我想使用javax.swing.Timer
而不是GUI
来创建计时器循环。这是否意味着如果没有GUI我将使用java.util.Timer
?
在没有javax.swing.Timer
的情况下使用GUI
是否会出现大错误?它会导致一些性能错误或减速吗?
有哪些方法可以创建一个被动运行或不停止主线程的循环?
提前致谢!
答案 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
满足您的需求,您一定要选择这个。