我正在运行一个 Java 应用程序,该应用程序又调用一些 C 代码。在 Java 中,我创建了一个线程,其唯一职责是执行对 C 代码的调用。
我将如何暂停 C 代码的执行?到目前为止,我已经花了一天的时间研究它,但我不确定我是否应该尝试在 Java 或 C 级别暂停。
下面我有调用public native String beginTest()
.
public void run() {
int result = this.beginTest();
AmpTester.setResponseValue(result);
}
为简单起见,假设 JNI 接口和本地方法定义如下:
JNIEXPORT jstring JNICALL Java_AmpTester_beginTest (JNIEnv *env, jobject obj){
return startAmpTest();
}
我要运行的实际本机代码:
int startTest(){
int i;
for (i = 0; i < 1000; i++){
printf("%i\n", i);
sleep(1);
}
return 0;
}