java Thread.sleep卡死问题

Thread.sleep(60*1000)这个代码的意义是:程序运行到这里后,挂起1分钟,然后1分钟后程序再进入到cpu的进程队列中排队等候执行。也就是说,这个代码无法精确控制该进程在此处恰好停留1分钟。具体的等待时间=1分钟+在排队进程中的等候时间。你也说了这个是一个偶发问题,也就是说在特殊情况下,该进程在...
java Thread.sleep卡死问题
Thread.sleep(60*1000)这个代码的意义是:程序运行到这里后,挂起1分钟,然后1分钟后程序再进入到cpu的进程队列中排队等候执行。
也就是说,这个代码无法精确控制该进程在此处恰好停留1分钟。具体的等待时间=1分钟+在排队进程中的等候时间。
你也说了这个是一个偶发问题,也就是说在特殊情况下,该进程在队列中排列的时间过长导致了等待时间很长。不过考虑到cpu的时间片大小,你等待了120秒还卡在那里的情况比较少见,可能是电脑优化不好,cpu比较老旧,开的进程特别多,导致电脑比较卡。2013-07-24
sleep会把当前线程暂停运行,所以后边的代码必须等sleep结束
这也是为什么java中会有多线程,就是把sleep的东西放到一个子线程里,这样主线程就不会卡住不动了2013-07-24
你确定是卡在sleep那么?2013-07-24
mengvlog 阅读 7 次 更新于 2025-07-19 08:36:49 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部