【发布时间】:2013-01-22 17:54:50
【问题描述】:
这里我想停止我的线程或杀死我的线程,它是在Java层上创建的,并且这个线程正在调用JNI函数。有时根据我的应用程序要求,我必须在某些条件下停止此 JNI 函数执行,否则不会。
new Thread(new Runnable() {
@Override
public void run() {
// My jni function call, It calls my JNI layer C function.
}
}
现在,当这个线程执行开始并且它在 JNI 级别工作时,我不必担心,但是在某些情况下,我想从其他类或方法中停止这个 JNI 工作,那么我该如何停止这个线程。
注意:这里我的线程也没有while循环,所以我也不能检查一些全局标志变量。
那么有没有人知道如何在没有while循环的情况下调用任何JNI函数时杀死一个线程。
【问题讨论】:
-
你考虑过 Thread.inturrupt() 吗?
-
@Mr.Me 不,我没有考虑过,但我怎么能检查这个,它总是给我它不打扰
-
请看docs.oracle.com/javase/6/docs/api/java/lang/Thread.html你可以通过调用你想要的函数来停止/销毁或中断线程
-
@Mr.Me 是的,我知道这一切,但在这里我的线程调用 jni 函数,所以如何从 java 层停止这个 jni 工作。
标签: java android multithreading java-native-interface native