java - 经过一定时间后,使线程最终进入

标签 java multithreading

我有一个线程可能会卡住并一直运行下去。因此在一定时间后,我希望它停止执行,转到finally方法做清理,然后死掉。我将如何安全地执行此操作?谢谢。

关于如何执行此操作,我的第一个想法是创建一个子线程并使其 hibernate ,然后进行清理。但是当父线程仍在尝试运行但它不能运行时,它会输出错误。

最佳答案

将您的代码重构为 Callable 并使用 ExecutorService 获取 Future。然后使用带有超时的 get,如果到那时还没有完成,则会抛出 TimeoutException。参见 https://stackoverflow.com/a/2275596/53897一个完整的例子。

关于java - 经过一定时间后,使线程最终进入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17957157/

相关文章:

java - Spark SQL RowFactory 返回空行

java - 需要帮助了解 Tomcat 与 WepApp 类加载问题

Java:在字段中显示actionEvent

java - 父线程在它们退出 servlet 容器之前是否等待子线程退出?

c# - 如何在 ASP.Net MVC 中使用 Task 重定向到一个 Action

java - 如何使用 ddmlib 获取 logcat 数据?

java - 如何从 JDBC 接收 Statement 的所有 ResultSet?

c++ - QThread 拥有的 QWidget 的消息循环

c - 使用基于 futex 的锁来管理跟踪服务员的最有效方法是什么?

c# - 使用 Windbg 在内存转储中查找调用的目标线程