我有一个Java程序,它执行一些计算,然后将结果上传到MYSQL数据库(托管在同一网络中的另一台计算机上)。有时候我会遇到这样的问题,即程序计算速度比上传速度快,因此无法上传所有结果。该程序目前没有线程。
是否有一种方法可以使程序在完成计算后暂停几毫秒,以便上传能够正常进行。(就像其他语言中的sleep或wait函数)
我可以将程序线程化,但那将需要大量重写。有更简单的方法吗?
谢谢
我有一个Java程序,它执行一些计算,然后将结果上传到MYSQL数据库(托管在同一网络中的另一台计算机上)。有时候我会遇到这样的问题,即程序计算速度比上传速度快,因此无法上传所有结果。该程序目前没有线程。
是否有一种方法可以使程序在完成计算后暂停几毫秒,以便上传能够正常进行。(就像其他语言中的sleep或wait函数)
我可以将程序线程化,但那将需要大量重写。有更简单的方法吗?
谢谢
有没有办法让程序在完成计算后睡眠几毫秒,以便上传可以正常进行。 (就像其他语言中的睡眠或等待函数)
Thread.sleep(milliseconds)
是一个公共静态方法,适用于单线程程序。以下是一个典型的模式:
try {
// to sleep 10 seconds
Thread.sleep(10000);
} catch (InterruptedException e) {
// recommended because catching InterruptedException clears interrupt flag
Thread.currentThread().interrupt();
// you probably want to quit if the thread is interrupted
return;
}
不需要实现Runnable
或对线程调用进行任何其他操作。 您可以随时调用它来在某些代码中暂停。
您不需要重新线程或进行任何类似的操作。您只需要调用:
Thread.Sleep(5000); // pause the app for 5 seconds
使用 Thread.sleep()
:
try
{
Thread.sleep(1000); // Sleep for one second
}
catch (InterruptedException e)
{
Thread.currentThread().interrupt();
}
这不会在程序中引入新的Thread
,也不需要任何其他与Thread
相关的机制。
只需使用:
try
{
Thread.sleep(<time in ms>);
}
catch(InterruptedException ex}
{
}
这将使当前线程(例如主线程)休眠。
InterruptedException
,建议调用 Thread.currentThread().interrupt();
。请参阅:https://dev59.com/tm445IYBdhLWcg3wWY8U - Grayjava.lang.Thread
类中的静态方法sleep()
在被调用时会暂停当前线程,这可能是主线程。您无需进行任何特殊操作即可使用它。
你的程序不是多线程的...但它正在使用一个线程。Thread.Sleep仍然可以工作。
在计算完成后,您可以使用Thread.sleep();
而无需使用线程重写整个程序!