java – 使线程休眠30分钟
作者:互联网
我想让我的线程等待30分钟.这样做有什么问题吗?
解决方法:
你可以让你的线程睡30分钟,如下所示:
Thread.sleep(30 * // minutes to sleep
60 * // seconds to a minute
1000); // milliseconds to a second
使用Thread.sleep
本身并不坏.简单地说,它只是告诉线程调度程序抢占线程.如果使用不当,Thread.sleep会很糟糕.
>在不释放(共享)资源的情况下休眠:如果您的线程正在使用来自共享连接池的开放数据库连接或内存中的大量引用对象进行休眠,则其他线程无法使用这些资源.只要线程休眠,这些资源就会被浪费掉.
>用于防止race conditions:有时您可以通过引入睡眠来实际解决竞争状况.但这不是一种保证方式.使用互斥锁.见Is there a Mutex in Java?
>作为保证计时器:不保证Thread.sleep的休眠时间.它可能会因InterruptedException过早返回.或者它可能睡过头了.
从documentation开始:
06001
Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds, subject to the precision and accuracy of system timers and schedulers.
您也可以使用,正如kozla13在评论中所示:
TimeUnit.MINUTES.sleep(30);
标签:thread-sleep,java,multithreading 来源: https://codeday.me/bug/20191007/1868654.html