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