0

長くて多くの内部ループを持つメソッドがあります。特定の条件が満たされた場合、内部ループのある時点で、スレッドを終了させたいのですが、finally ブロックを呼び出してクリーンアップも行います。これどうやってするの?

4

2 に答える 2

1

return;停止したいときに電話してください。これにより、ループが終了し、finallyが実行されます(returnステートメントを含むループがブロックにある限り)。try

例えば

擬似コード:

public void run () {
  try {
    loop {
        loop {
           if (condition) return;
        }
    }
  } finally {
    // always run
  }
}
于 2012-12-12T00:37:39.937 に答える
1

「スレッドを終了する」とは、実際にはrun()メソッドが終了することを意味することを忘れないでください。スレッドの/Runnableのrun()メソッドの最後のものとして、finallyをループの外側に配置します。

于 2012-12-12T00:37:52.337 に答える