javax.swing.Timer与java.util.Timer

DRa*_*lav 5 java

我听说所有的javax.swing课程都应该只在Iam实际建立的时候使用Swing GUI.我想使用javax.swing.Timerwithout GUI来创建定时器循环.这是否意味着我不使用GUI java.util.Timer

javax.swing.Timer没有使用是很大的错误GUI吗?它会导致一些性能错误或减速吗?

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

提前致谢!

Vis*_*l K 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.


Mic*_*rek 1

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

您应该尝试拥有尽可能少的依赖项。如果java.util.Timer有东西能满足您的需求,您绝对应该选择这个。