多线程使java程序在没有线程的情况下休眠
我有一个java程序,可以进行一些计算,然后将结果上传到MYSQL数据库(托管在同一网络中的另一台计算机上)。我有时会遇到这样的问题:程序计算的速度比上传结果的速度快。因此,它无法上载所有结果。程序当前没有线程化
是否有一种方法可以让程序在完成计算后休眠几毫秒,以便正确地进行上传。(与其他语言中的睡眠或等待功能类似)
我可以线程的程序,但这将是太多的重写。有没有更简单的方法
谢谢
你可以在下面搜索框中键入要查询的问题!
我有一个java程序,可以进行一些计算,然后将结果上传到MYSQL数据库(托管在同一网络中的另一台计算机上)。我有时会遇到这样的问题:程序计算的速度比上传结果的速度快。因此,它无法上载所有结果。程序当前没有线程化
是否有一种方法可以让程序在完成计算后休眠几毫秒,以便正确地进行上传。(与其他语言中的睡眠或等待功能类似)
我可以线程的程序,但这将是太多的重写。有没有更简单的方法
谢谢
# 1 楼答案
使用
Thread.sleep()
:这不会在程序中引入新的
Thread
,也不需要任何其他与Thread
相关的机制# 2 楼答案
java.lang.Thread
类中的静态方法sleep()
在调用时暂停当前线程(可能只是主线程)。你不需要做任何特殊的事情来使用它# 3 楼答案
你不必重新线程或任何类似的事情。您只需拨打以下电话:
每个应用程序也是一个线程,在您的例子中也称为单线程应用程序。您可以在不使用任何其他代码或重构的情况下使用线程API,如Sleep
但需要注意的是:如果需要使用线程。睡眠来管理你的控制流,那么可能在架构上出了问题。从你的OP来看,我比你描述的单线程应用更担心的是,你似乎有一个操作“超过”另一个。这应该是不可能的,除非您从其他地方接收异步事件
另一个警告:Sleep需要一个毫秒参数,这个参数通常是任意的,只是意味着“等一会儿”问题是,今天“一段时间”可能还可以,但明天您的机器将承受更大的负载,“一段时间”将不再足够好,您的睡眠将中断,同样的错误将出现。当然,您可以将超时设置为“很长一段时间”,但随后您将为每一笔交易等待“很长一段时间”。。。第22条
# 4 楼答案
只需使用:-
这将使当前线程(例如主线程)休眠
# 5 楼答案
每个Java应用程序都在JVM中的一个线程中执行。调用静态方法线程。睡眠将导致应用程序的线程(正在运行的线程)停止
# 6 楼答案
Thread.sleep(milliseconds)
是一种公共静态方法,也适用于单线程程序。以下是一种典型的模式:不需要使用线程调用实现
Runnable
或执行任何其他操作。您可以随时调用它来暂停某些代码