Java 如何以1秒的间隔执行一段代码?

Java 如何以1秒的间隔执行一段代码?,java,multithreading,timer,intervals,Java,Multithreading,Timer,Intervals,我需要每1秒执行一个块,但它必须在同一个线程中。这意味着,据我所知,我不能使用计时器类 有什么方法可以实现我想要的吗?创建一个线程并像这样编写一个循环- while(true) { // do something Thread.sleep(1000); } 创建一个线程并像这样编写一个循环- while(true) { // do something Thread.sleep(1000); } Thread.sleep(1000)不起作用有什么原因吗?…和什么

我需要每1秒执行一个块,但它必须在同一个线程中。这意味着,据我所知,我不能使用计时器类


有什么方法可以实现我想要的吗?

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

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

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

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

Thread.sleep(1000)不起作用有什么原因吗?…和什么在同一个线程中?作为开始执行的线程,还是与上次执行相同的线程?如果后者正常,那么Timer和ScheduledThreadPoolExecutors就可以了。Thread.sleep(1000)不能工作有什么原因吗?…在同一个线程中作为什么?作为开始执行的线程,还是与上次执行相同的线程?如果后者正常,则Timer和ScheduledThreadPoolExecutors就可以了。请记住,此循环不一定每秒都运行。它将在迭代之间休眠1秒。例如,如果您的任务需要0.5秒才能完成,那么循环将大约每1.5秒执行一次。@rob哦,是的,我理解这一点。这更像是一个超时函数。请记住,此循环不一定每秒都运行。它将在迭代之间休眠1秒。例如,如果您的任务需要0.5秒才能完成,那么循环将大约每1.5秒执行一次。@rob哦,是的,我理解这一点。这将更像一个超时函数。