我听说只有在构建Swing GUI时才应该使用所有的javax.swing类。我想使用不带GUI的javax.swing.Timer来创建计时器循环。这是否意味着如果没有图形用户界面,我是否应该使用java.util.Timer
在没有GUI的情况下使用javax.swing.Timer是一个很大的错误吗?它会导致一些性能错误或速度减慢吗?
有什么方法可以创建一个被动运行或不停止主线程的循环?
提前感谢!
发布于 2013-05-09 01:33:32
是的,不推荐这样做,因为它是您需要的另一个依赖项。
您应该尝试尽可能少的依赖项。如果java.util.Timer能满足你的需求,你绝对应该选择这个。
发布于 2013-05-09 02:39:32
在没有图形用户界面的情况下使用javax.swing.Timer是一个大错误吗?它会导致一些性能错误或速度减慢吗?
不,这不是一个大错误。但是,如果应用程序中没有正在运行的non-daemon线程,则与javax.swing.Timer关联的ActionEvents将不会触发。如果应用程序中没有正在运行的non-daemon线程,则程序将正常退出,而不会使javax.swing.Timer执行相关的actionPerformed方法。但是图形用户界面会导致JVM挂起,并让Timer执行actionPerformed方法。
如果您没有使用图形用户界面,请确保应用程序中有一些non-daemon线程正在运行。
有什么方法可以创建一个被动运行或不停止主线程的循环?
您可以使用java.util.Timer来实现此目的。但是现在java.util.concurrent已经提供了大量丰富的API来执行并发任务。因此,现在您应该继续使用ScheduledExecutorService应用程序接口来实现此目的。
https://stackoverflow.com/questions/16446772
复制相似问题