我有产生新线程的执行主线程。在main()的执行主线程中,我正在调用Thread.sleep()
。何时获得 未处理的异常
类型InterruptedException
?
我不确定为什么会得到这个。我以为这是因为我需要对主线程的引用,所以我继续并通过进行了引用Thread.currentThread()
。
这不是让线程休眠的方法吗?我需要做的是让主线程等待/睡眠/延迟,直到它再次需要工作为止。
您看到的是编译错误,原因是您没有正确处理检查的异常(InterruptedException
在这种情况下)。处理意味着执行以下操作之一:
1)将方法声明为throws InterruptedException
,因此要求调用者处理异常
2)用一个try{..}catch(..){..}
块捉住它。例如:
try {
Thread.sleep(1500);
} catch(InterruptedException e) {
System.out.println("got interrupted!");
}
InterruptedException
用于指示当前线程在执行某些阻塞操作(例如,可中断的IO,等待,睡眠)时已被外部线程中断
问题内容: 这会使当前的UI线程休眠吗? 问题答案: 如果要在ui线程上调用sleep,它将阻塞ui线程。不要在ui线程上调用sleep。您不应该阻止ui线程。 http://developer.android.com/reference/java/lang/Thread.html http://docs.oracle.com/javase/tutorial/essential/concurren
问题内容: 我想让系统进入睡眠或hibernate状态,这是两种不同的选择。 我将如何使用API进行此操作,我真的不想使用Process,并且这不允许我选择执行此操作所需的方法。 问题答案: 或者,如果您喜欢系统调用:
问题内容: 有没有让goroutine永远睡眠的API ? 换句话说,我希望我的项目始终运行,除非停止它。 问题答案: “睡眠” 您可以使用许多永久阻塞的构造,而不会“吃掉” CPU。 例如,不带任何(且不带)的a: 或从没有人发送任何东西的渠道接收: 或从频道接收也会永远阻止: 或在频道上发送也会永远被阻止: 或锁定已经锁定的: 戒烟 如果您确实想提供一种退出方法,则可以通过一个简单的渠道来完成
问题内容: 这里有两个代码块完成(我认为是)同一件事。 我基本上是在尝试学习如何使用Java 1.5的并发性来摆脱Thread.sleep(long)。第一个示例使用ReentrantLock,第二个示例使用CountDownLatch。我想要做的事情的关键是让一个线程进入睡眠状态,直到条件在另一个线程中得到解决。 ReentrantLock在我用来确定是否唤醒另一个线程的布尔值上提供了一个锁,然
Heroku WORKER Dyno(在python环境中运行)在30分钟后进入睡眠状态。工作人员执行芹菜期任务计划,向用户发送电子邮件。 下面是显示实际行为的日志: 根据研究,我的理解是dyno进入睡眠状态,但是dyno不会睡眠。https://devcenter.heroku.com/articles/free-dyno-hours: 如果一个应用程序有一个免费的网络dyno,并且dyno在3
我使用 C 和 POSIX 线程创建了一个多线程应用程序。我现在应该阻塞一个线程(主线程),直到设置了布尔标志(变为真)。 我找到了两种方法来完成这件事。 > 在没有睡眠的情况下旋转。 在睡眠中旋转循环。 如果我应该遵循第一种方式,为什么有些人编写代码遵循第二种方式?如果应该使用第二种方法,为什么要让当前线程Hibernate呢?这种方式的缺点是什么?