【发布时间】:2013-12-22 11:28:34
【问题描述】:
我发现了关于 Thread.sleep 的令人惊讶的事情。线程没有及时唤醒。让我解释。我创建一个活动(无服务)并运行如下线程。
Thread.sleep(50000); // 50 seconds
System.out.println("something");
然后我将活动保持在前台并关闭显示(通过按电源按钮)。我还登录了保存在 sdcard 中的文件。我发现,几乎 10 分钟线程延迟 7.35 分钟打印而不是 50 秒。正常吗??我可以信任 Thread.sleep() 吗?
16:47:57 ---- START
--------
-------- (all are in time)
--------
16:57:07 -- (in time)
16:57:57 -- (in time)
17:05:38 --- (late)
【问题讨论】:
-
您在活动代码的哪个位置调用睡眠?
-
@Zymurgeek 这很复杂。但是你可以假设一个简单的线程在 onCreate() 中运行。还有3个等待线程并行运行。但它们是独立的。
标签: java android multithreading