java Thread.sleep卡死问题

这是一个偶发问题。在java中执行等待60秒:Thread.sleep(60*1000),结果程序一直卡在这行代码,在120秒后都没有执行结束。这是什么原因?怎么解决啊?... 这是一个偶发问题。
在java中执行等待60秒:Thread.sleep(60*1000),
结果程序一直卡在这行代码,
在120秒后都没有执行结束。
这是什么原因?怎么解决啊?
展开
 我来答
与沫__
2013-07-24 · TA获得超过229个赞
知道答主
回答量:75
采纳率:100%
帮助的人:72万
展开全部
Thread.sleep(60*1000)这个代码的意义是:程序运行到这里后,挂起1分钟,然后1分钟后程序再进入到cpu的进程队列中排队等候执行。
也就是说,这个代码无法精确控制该进程在此处恰好停留1分钟。具体的等待时间=1分钟+在排队进程中的等候时间。
你也说了这个是一个偶发问题,也就是说在特殊情况下,该进程在队列中排列的时间过长导致了等待时间很长。不过考虑到cpu的时间片大小,你等待了120秒还卡在那里的情况比较少见,可能是电脑优化不好,cpu比较老旧,开的进程特别多,导致电脑比较卡。
以水丹75
推荐于2018-04-05 · TA获得超过575个赞
知道小有建树答主
回答量:567
采纳率:100%
帮助的人:423万
展开全部
sleep会把当前线程暂停运行,所以后边的代码必须等sleep结束
这也是为什么java中会有多线程,就是把sleep的东西放到一个子线程里,这样主线程就不会卡住不动了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我没有病
2013-07-24 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:170万
展开全部
你确定是卡在sleep那么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式