当前位置: 首页 > 面试题库 >

在Java中运行代码达x秒?

仰经武
2023-03-14
问题内容

我想编写一个Java while循环,该循环将迭代15秒。我认为要执行此操作的一种方法是存储当前系统时间+
15秒,然后将其与while循环签名中的当前时间进行比较。

有没有更好的办法?


问题答案:

此设计取决于您15秒钟要做什么。两种最合理的情况是“每X进行15秒钟”或“等待X发生或15秒钟以较早者为准”,这将导致截然不同的代码。

刚等

线程睡眠(15000)

这不会重复,但是如果您不希望在15秒钟之内做任何事情,效率会高得多(不执行任何操作会浪费更少的CPU)。

重复一些代码15秒钟

如果您真的想循环15秒,那么您的解决方案就可以了,只要您的代码不会花费太长时间即可。就像是:

long t= System.currentTimeMillis();
long end = t+15000;
while(System.currentTimeMillis() < end) {
  // do something
  // pause to avoid churning
  Thread.sleep( xxx );
}

等待15秒或其他情况

如果您希望代码在恰好15秒后被中断,则无论执行什么操作,都需要一个多线程解决方案。在java.util.concurrent中查看许多有用的对象。大多数锁定方法(如wait())都有一个超时参数。一个信号可能做的正是你所需要的。



 类似资料:
  • 问题内容: 由于某种原因,没有关于在Java代码中运行liquibase的文档。我想为单元测试生成表。 我将如何直接在Java中运行它? 例如 问题答案: 它应该类似于(取自liquibase.integration.spring.SpringLiquibase源代码): ResourceAccessor有多种实现方式,具体取决于应如何找到更改日志文件。

  • 问题内容: codepad.org允许您在线运行C,C ++,D等代码,但不能运行Java …我可以使用Java的网站吗? 问题答案: 还有http://ideone.com/(支持多种语言)

  • 问题内容: 我试图基于此建议从我的java类运行maven: 如何从Java运行Maven? 但我得到: mvn在我的路上,我可以从cmd运行它: 有什么建议? 问题答案: 尝试: 编辑: 响应第一个问题… 是。请参阅:Process#getInputStream。基本上,您将需要使用正在创建的子流程的输出。 我也喜欢这篇文章:http : //www.javaworld.com/javaworl

  • 问题内容: 大约一年前,我偶然发现了Java的一个不错的功能,我一生都找不到。 通过一些魔术接口,显然可以在运行时声明一些可替换的类或函数。 我找到了一个很好的示例指南,该人运行了一个简单的小程序,该程序打印了一条特定的消息,然后他使用一种我不记得的方法更新了该程序,然后突然该程序将旧的打印功能替换为新的打印功能。 我尝试浏览Java API来激发我的记忆力和谷歌搜索功能,但没有成功。有人可以帮忙

  • 问题内容: 我已经编写了一些代码来编译Java源代码。然后生成.class文件。问题是如何运行它? 例如,我可以设置程序和类的名称,可以使用prog p = new prog(),但是在这种情况下,类文件在编译之前尚不存在。不太确定该怎么办。有人可以给我建议吗? 顺便说一句,该类如下所示: 问题答案: 如果只想运行它,则可以使用Runtime.exec或ProcessBuilder启动Java进程

  • 问题内容: 基本上,我想做两件事: 我想知道是否可以使用Java代码运行Java代码。 如果可能的话,如何在屏幕上显示输出?(无论是常规输出还是错误或异常) 我知道这是可能的,因为我的一位前辈已经做到了,但是我不知道他是如何做到的。也许他使用了Java的内置类之一。 注意:用户将代码写入一些文本文件中,然后将文件内容存储在某个变量中,然后也许运行该代码。 问题答案: 是的,有可能。 步骤1:编译代