发生JNI代码错误时,如何正确停止线程?

时间:2018-09-21 16:27:28

标签: java error-handling java-native-interface

我看过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;
}

2 个答案:

答案 0 :(得分:1)

设置flag=0。它将退出循环,线程自然结束。

答案 1 :(得分:0)

使用boolean volatile变量跟踪错误情况,然后使用interrupt()停止线程。
How to properly stop the Thread in Java?

详细回答了类似的问题