This question already has answers here:
javax.swing.Timer vs java.util.Timer inside of a Swing application
                            
                                (2个答案)
                            
                    
                    
                        TimerTask vs Timer vs Thread?
                            
                                (1个答案)
                            
                    
                3年前关闭。
        

    

嗨,我在GUI中做一个Java项目,在经过特定时间后我需要更改一些东西,我想知道Timer和TimerTask类之间的区别,以及它们是否都是Thread ... ...也想知道java是否.util.Timer和java.swing.Timer在这种用途上是否有所不同?
谢谢回答

最佳答案

您可以在API文档中找到所有答案。即javax.swing.Timer文档说:


  在v 1.3中,向Java平台添加了另一个Timer类:
  java.util.Timer。它和javax.swing.Timer都提供相同的基本
  功能,但java.util.Timer更通用,功能更多
  特征。 javax.swing.Timer有两个功能可以使它成为一个
  与GUI一起使用更容易。首先,它的事件处理隐喻是
  GUI程序员很熟悉,可以与
  事件调度线程要简单一些。二,其自动线程
  分享意味着您无需采取特殊步骤来避免
  产生太多线程。相反,您的计时器使用同一线程
  用于使光标闪烁,出现工具提示等。


简短的答案是java.util.Timer更通用。

另外,如果您检查API页面,则这些类都不扩展Thread。其中一些虽然在内部使用Threads`。

如果您确实需要实施某种计时,我建议使用中央ScheduledThreadPoolExecutor。该计划执行程序比任何计时器都更加灵活,而且,它还给您带来更多控制权。

07-24 09:45
查看更多