当前位置: 首页 > 知识库问答 >
问题:

如何让java在执行下一行之前等待一秒钟,而不使用try/catch[duplicate]

冯浩旷
2023-03-14

我想知道是否有办法做到这一点,没有任何混乱或混乱。另外,当我执行wait()方法时,它有一个java。lang.IllegalMonitorStateException错误。

共有3个答案

相化
2023-03-14

在Java

Thread.sleep(intervalInMills);
TimeUnit.MILLISECONDS.sleep(intervalInMills);

定时

new Timer().scheduleAtFixedRate(task, delay, period);

带执行器框架

ScheduledExecutorService.scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)

有了Spring,

@Scheduled(fixedDelay = 1000)
private void method() {
    // some code
}

您还可以使用初始延迟来安排cron固定速率

计阳泽
2023-03-14

再说一次,番石榴是你的朋友:

Uninterruptibles.sleepUninterruptibly(1,TimeUnit.SECONDS);

这就是它的实施方式:

 public static void sleepUninterruptibly(long sleepFor, TimeUnit unit) {
    boolean interrupted = false;
    try {
      long remainingNanos = unit.toNanos(sleepFor);
      long end = System.nanoTime() + remainingNanos;
      while (true) {
        try {
          // TimeUnit.sleep() treats negative timeouts just like zero.
          NANOSECONDS.sleep(remainingNanos);
          return;
        } catch (InterruptedException e) {
          interrupted = true;
          remainingNanos = end - System.nanoTime();
        }
      }
    } finally {
      if (interrupted) {
        Thread.currentThread().interrupt();
      }
    }
  }

强宾白
2023-03-14

Thread.sleep()方法可以执行您想要的操作。这是一种简单的方法,可以在给定的时间内停止执行(并不总是准确的)。根据Oracle文档:

Thread.sleep导致当前线程挂起执行一段指定的时间。这是使处理器时间可用于应用程序或可能在计算机系统上运行的其他应用程序的其他线程的有效手段。

所以,称之为,

Thread.sleep(1000);

这将Hibernate一秒钟,直到进一步执行。时间单位为毫秒或纳秒。

由于操作系统及其配置,这种方法可能并不总是准确的。

 类似资料:
  • 问题内容: 我有一个搜索输入,当我输入内容时,该输入会将数据从输入发送到php文件。php文件对我的数据库进行搜索,并显示搜索选项列表。您知道,ajax风格的实时搜索。 我的问题是,如果您输入的内容非常快,即使输入了另外10个字母,它也可能只搜索前1或2个字母。这引起一些问题。 我的jQuery看起来像这样: 和 所以我很好奇,如何使脚本等到我完成输入后再运行该函数?我的逻辑是说,例如,如果200

  • 下面的函数不能像我希望的那样工作;作为一个JS新手,我不明白为什么。 我需要它等待5秒钟,然后检查是否为。 目前,它不等待,只是立即检查。

  • 问题内容: 我正在研究Java Selenium-WebDriver。我加了 和 因为我的应用程序需要几秒钟来加载用户界面。所以我设置了2秒的隐式等待。但是我找不到元素文本框 然后我添加 现在工作正常。哪一个是更好的方法? 问题答案: 好吧,有两种类型的等待:显式和隐式等待。显式等待的想法是 隐式等待的概念是 你可以在此处获得细节上的差异。 在这种情况下,我宁愿使用显式等待(尤其是): 函数返回找

  • 我在做一个JavaSelenium-WebDriver 和 因为我的应用程序只需几秒钟就能加载用户界面。所以我设定了2秒的等待时间。但我找不到元素文本框 然后我添加

  • 我试图在while循环中执行try-catch块。当我要求用户输入一个数字(应该是双精度的)时,我使用try-catch来捕获任何输入不匹配异常。我将其嵌套在while循环中,这样如果捕获到任何异常,用户可以根据需要重新输入输入。问题在于,如果捕获到异常,扫描仪将不允许用户出于某种原因重新输入输入。在第二次迭代中,当您返回到hours=kb.nextDouble的行时,会发现错误。这是代码。

  • 这是我第一次在项目中使用Java,我需要这样做: 发送CoAP POST请求以打开致动器 但它抛出一个错误无法到达的语句,我不明白为什么:(