【问题标题】:How to execute a block of code with 1 second intervals?如何以 1 秒的间隔执行一段代码?
【发布时间】:2013-05-02 22:16:43
【问题描述】:

我需要每 1 秒执行一次块,但它需要在同一个线程中。这意味着,据我了解,我无法使用计时器类。

有没有办法做我想做的事?

【问题讨论】:

  • Thread.sleep(1000) 不起作用有什么原因吗?
  • ...与什么在同一个线程中?作为开始执行的线程还是与上次执行相同的线程?如果后者没问题,那么 Timer 和 ScheduledThreadPoolExecutors 都可以。

标签: java multithreading timer intervals


【解决方案1】:

创建一个线程并像这样编写一个循环 -

while(true)
{
    // do something
    Thread.sleep(1000);
}

【讨论】:

  • 请记住,此循环不一定每秒运行一次。它将在迭代之间休眠 1 秒。因此,例如,如果您的任务需要 0.5 秒才能完成,那么循环将大约每 1.5 秒执行一次。
  • @rob 哦,是的,我明白这一点。这更像是一个超时功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 2012-07-06
  • 1970-01-01
相关资源
最近更新 更多