簡體   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