java - 在特定条件下停止当前正在运行的线程,并调用finally block

标签 java multithreading

我有一个很长并且有很多内部循环的方法,在内部循环的某个时刻,如果满足某个条件,我希望终止线程,但我也希望调用finally block 以便清理也会发生。我怎样才能做到这一点?

最佳答案

当你想停止时,调用return;。这将离开循环并运行finally(只要带有return语句的循环try block 内)。

例如

伪代码:

public void run () {
  try {
    loop {
        loop {
           if (condition) return;
        }
    }
  } finally {
    // always run
  }
}

关于java - 在特定条件下停止当前正在运行的线程,并调用finally block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830887/

相关文章:

java - JSF2 Form 到 DB 特殊字符处理

java - 在 App Engine 上使用 Java 中的 Python 代码

java - 在 Jedis 中使用连接池

Java : Out Of Memory Error when my application runs for longer time

java - 如何阻止一个线程修改另一个线程正在使用的数组?

java - 捕获异常后重新启动线程

java - 如何成功地结合这两个 JUnit 测试的逻辑?

java - 如何抑制Android Spinner双击问题

java - Solr 我怎样才能先拥有原始术语而不是词干版本?

Java addShutdownHook 方法