我有一个很长且有很多内部循环的方法,如果满足某个条件,在内部循环中的某个点,我希望线程终止,但我也希望调用finally块以便清理也发生了。我怎么能这样做?
答案 0 :(得分:1)
当您想要停止时,请致电return;
。这将离开循环并运行finally(只要带有 return 语句的循环在 try
块中)。
E.g。
<强>伪代码:强>
public void run () {
try {
loop {
loop {
if (condition) return;
}
}
} finally {
// always run
}
}
答案 1 :(得分:1)
请记住&#34;终止线程&#34;真的只是意味着 - 或者应该意味着! - run()方法退出。把finally放在循环之外,作为线程&runnable的run()方法的最后一件事。