我看过How to properly stop the Thread in Java?。 但是C中没有try&catch。
我在线程中调用JNI函数。我想在出现问题时停止线程。
在error()
中我应该怎么做以防止代码隐藏并停止线程?
当我在函数1中调用error()时,如何避免后续函数执行?
我的代码如下:
new Thread() (new Runnable() {
@Override
public void run() {
JNIfunction();
}
}).start();
JNIfunction():
while(flag) {
//Function1, call error() to stop thread when wrong.
//Function2, call error() to stop thread when wrong.
//Function3, call error() to stop thread when wrong.
...
}
error():
void error() {
flag= 0;
}
答案 0 :(得分:1)
设置flag=0
。它将退出循环,线程自然结束。
答案 1 :(得分:0)
使用boolean volatile
变量跟踪错误情况,然后使用interrupt()
停止线程。
How to properly stop the Thread in Java?