Java 如何在代码行之间设置等待时间
我想在代码之间创建一个等待期,如下所示:Java 如何在代码行之间设置等待时间,java,Java,我想在代码之间创建一个等待期,如下所示: javax.swing.JOptionPane.showMessgeDialog(null, "2 hours left"); // Wait for 2 hours javax.swing.JOptionPane.showMessageDialog(null, "2 hours ago"); 但我不知道如何安排这段等待时间,我将尝试所有答案并选择最好的答案,但请回答我。您正在寻找的答案 javax.swing.JOptionPane.showMe
javax.swing.JOptionPane.showMessgeDialog(null, "2 hours left");
// Wait for 2 hours
javax.swing.JOptionPane.showMessageDialog(null, "2 hours ago");
但我不知道如何安排这段等待时间,我将尝试所有答案并选择最好的答案,但请回答我。您正在寻找的答案
javax.swing.JOptionPane.showMessgeDialog(null,“还剩2小时”);
//等2个小时
试一试{
Thread.sleep(7200000);//持续时间(毫秒)
}捕获(中断异常例外){
Thread.currentThread().interrupt();
}
javax.swing.JOptionPane.showMessageDialog(null,“2小时前”);
或者,正如@user2478398所建议的那样
javax.swing.JOptionPane.showMessgeDialog(null,“还剩2小时”);
//等2个小时
时间单位。小时。睡眠(2L);
javax.swing.JOptionPane.showMessageDialog(null,“2小时前”);
您正在寻找的
javax.swing.JOptionPane.showMessgeDialog(null,“还剩2小时”);
//等2个小时
试一试{
Thread.sleep(7200000);//持续时间(毫秒)
}捕获(中断异常例外){
Thread.currentThread().interrupt();
}
javax.swing.JOptionPane.showMessageDialog(null,“2小时前”);
或者,正如@user2478398所建议的那样
javax.swing.JOptionPane.showMessgeDialog(null,“还剩2小时”);
//等2个小时
时间单位。小时。睡眠(2L);
javax.swing.JOptionPane.showMessageDialog(null,“2小时前”);
这是使用线程睡眠方法的地方,下面是:
您可以在方法中抛出InterruptedException
,也可以使用try-catch
处理它。这是您使用线程的地方。sleep
方法,以下是:
您可以在方法中抛出InterruptedException
,也可以使用try-catch
处理它
添加如下延迟:
javax.swing.JOptionPane.showMessgeDialog(null, "2 hours left");
// Wait for 2 hours
javax.swing.JOptionPane.showMessageDialog(null, "2 hours ago");
添加如下延迟:
javax.swing.JOptionPane.showMessgeDialog(null, "2 hours left");
// Wait for 2 hours
javax.swing.JOptionPane.showMessageDialog(null, "2 hours ago");
所有其他答案都建议使用Thread.sleep()
。我想它可以工作,但它阻止了当前线程。通常你不想那样
您应该使用更健壮的解决方案,这是一个及其计划方法。像这样的东西应该适合你:
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
long delay = 2L;
executorService.schedule(App::myTask, delay, TimeUnit.HOURS);
}
private static void myTask() {
//whatever you want to execute after delay
System.out.println("Running");
}
myTask
方法中的代码将在延迟2小时后在其他线程中执行。所有其他答案都建议使用thread.sleep()
。我想它可以工作,但它阻止了当前线程。通常你不想那样
您应该使用更健壮的解决方案,这是一个及其计划方法。像这样的东西应该适合你:
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
long delay = 2L;
executorService.schedule(App::myTask, delay, TimeUnit.HOURS);
}
private static void myTask() {
//whatever you want to execute after delay
System.out.println("Running");
}
myTask
方法中的代码将在延迟2小时后在其他线程中执行。基本上,您需要一个计时器将代码保持2小时,并在两小时后打印第二行?这是否回答了您的问题?这也很有帮助,谢谢,若霍拉不要让一根线睡两个小时。改用计时器或类似的构造在将来执行特定的操作。例如,看一看基本上,你想要一个计时器保持你的代码2小时,两小时后打印第二行?这回答了你的问题吗?这也很有帮助,谢谢,若霍拉不要让一根线睡两个小时。改用计时器或类似的构造在将来执行特定的操作。例如,查看120_000
=2分钟<代码>时间单位。小时。睡眠(2L)代码>将更具可读性,更不容易出错,并且实际睡眠时间正确。也就是说,睡眠2小时对于线程来说是一个可怕的想法。我正在制作一个时间表,并设置要等待多少时间,然后发出警报,因此如果用户想要2小时,它应该等待2小时,然后发出警报。120_000
=2分钟<代码>时间单位。小时。睡眠(2L)代码>将更具可读性,更不容易出错,并且实际睡眠时间正确。也就是说,睡眠2小时对于线程来说是一个可怕的想法。我正在制作一个时间表,并设置要等待多少时间,然后发出警报,因此如果用户想要2小时,它应该等待2小时,然后发出警报。感谢#Mohsen_Fatemi,这很有帮助,但7200000是什么,一毫秒或一微秒还是什么?@AbdullahAhmedKamal如果你看到文档,你会看到它在毫秒。谢谢#Mohsen_Fatemi,这帮了大忙,但7200000是什么,一毫秒或一微秒还是什么?@AbdullahAhmedKamal如果你看到文档,你会看到它在毫秒。事实上,只需在上面的main
方法末尾添加executorService.shutdown()
,就可以了。实际上,在上面的main
方法的末尾添加executorService.shutdown()
,应该可以。我只是哑巴:)。