当前位置: 首页 > 面试题库 >

Thread.sleep()是否会使UI线程进入睡眠状态?

谢奇略
2023-03-14
问题内容

这会使当前的UI线程休眠吗?

try 
{
   Thread.sleep(20);
   onProgressUpdate(i);
} catch (InterruptedException e) {
      e.printStackTrace();
}

问题答案:

如果要在ui线程上调用sleep,它将阻塞ui线程。不要在ui线程上调用sleep。您不应该阻止ui线程。

http://developer.android.com/reference/java/lang/Thread.html

http://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html

您将获得ANR

如果实现ThreadHandlerThread,请确保在等待辅​​助线程完成时不会阻塞UI线程-
不要调用Thread.wait()Thread.sleep()

http://developer.android.com/training/articles/perf-
anr.html

还要检查如何避免ANR下的主题



 类似资料:
  • 问题内容: 我有产生新线程的执行主线程。在main()的执行主线程中,我正在调用。何时获得 未处理的异常 类型? 我不确定为什么会得到这个。我以为这是因为我需要对主线程的引用,所以我继续并通过进行了引用。 这不是让线程休眠的方法吗?我需要做的是让主线程等待/睡眠/延迟,直到它再次需要工作为止。 问题答案: 您看到的是编译错误,原因是您没有正确处理检查的异常(在这种情况下)。处理意味着执行以下操作之

  • 问题内容: 我想让系统进入睡眠或hibernate状态,这是两种不同的选择。 我将如何使用API​​进行此操作,我真的不想使用Process,并且这不允许我选择执行此操作所需的方法。 问题答案: 或者,如果您喜欢系统调用:

  • 问题内容: 我对方法有些困惑。如果是静态方法,两个线程如何知道哪个进入睡眠状态。例如,在下面的代码,我有两个三 ,和。我总是打电话。不。这是否意味着Thread.sleep()使当前线程进入睡眠状态?这意味着Thread实例通过调用static方法自行进入睡眠状态。如果t1想睡觉怎么办。那应该不可能正确吗? 问题答案: 这是否意味着Thread.sleep()使当前线程进入睡眠状态? 是。只有当前

  • 问题内容: 这里有两个代码块完成(我认为是)同一件事。 我基本上是在尝试学习如何使用Java 1.5的并发性来摆脱Thread.sleep(long)。第一个示例使用ReentrantLock,第二个示例使用CountDownLatch。我想要做的事情的关键是让一个线程进入睡眠状态,直到条件在另一个线程中得到解决。 ReentrantLock在我用来确定是否唤醒另一个线程的布尔值上提供了一个锁,然

  • 我使用 C 和 POSIX 线程创建了一个多线程应用程序。我现在应该阻塞一个线程(主线程),直到设置了布尔标志(变为真)。 我找到了两种方法来完成这件事。 > 在没有睡眠的情况下旋转。 在睡眠中旋转循环。 如果我应该遵循第一种方式,为什么有些人编写代码遵循第二种方式?如果应该使用第二种方法,为什么要让当前线程Hibernate呢?这种方式的缺点是什么?

  • 问题内容: 有没有让goroutine永远睡眠的API ? 换句话说,我希望我的项目始终运行,除非停止它。 问题答案: “睡眠” 您可以使用许多永久阻塞的构造,而不会“吃掉” CPU。 例如,不带任何(且不带)的a: 或从没有人发送任何东西的渠道接收: 或从频道接收也会永远阻止: 或在频道上发送也会永远被阻止: 或锁定已经锁定的: 戒烟 如果您确实想提供一种退出方法,则可以通过一个简单的渠道来完成