Java中的计时器不会暂停程序?

时间:2015-03-21 20:18:40

标签: java timer

我想知道是否有一种我可以使用的计时器,它不会暂停我的所有代码Thread.sleep(ms)不是我需要的,因为它会暂停我的所有代码。

编辑:好的,我想我错了。这是我的编辑: 有没有办法在Java中测量一定的时间而不暂停我的main方法?

3 个答案:

答案 0 :(得分:1)

我喜欢使用Executors课程。它有一个很好的方法newScheduledThreadPool。它为您提供了一个ScheduledExecutorService实例,它有很多调度方法。

在这里查看: http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(threadToExecute, 10, TimeUnit.SECONDS);

此代码将在10秒后启动threadToExecute thread,而不会暂停主线程。

答案 1 :(得分:0)

取决于您使用的框架。一个非常通用的方法是启动一个新的Thread,通过Thread.sleep(ms)暂停Thread,然后在那个延迟后做你想做的任何事情,但当然这需要一点点照顾因为并发问题。

答案 2 :(得分:0)

您可能希望查看Timer课程。您可以将其附加到线程,计划事件和添加延迟。你可以做的就是你可以创建一个线程来运行你的主线程并让它从那里运行。因为它们将位于两个完全不同的线程上,所以您不必担心它们会相互干扰。要运行另一个线程,您可以创建一个扩展Thread并运行它的类。然后使用Timer(String name)构造函数为线程创建一个Timer。