java-JNA从Java调用本机循环并从其他函数停止它

时间:2014-08-12 22:03:06

标签: java c++ jna

我想开始一个用C ++编写的循环,直到我要求它(从Java)停止。 IE:

(在c ++中)

void loop(){
   while(!stop){
     // do something
   }
}
Java中的

MyLib.INSTANCE.loop();

然后调用类似的东西: MyLib.INSTANCE.stop = true;

有可能吗?

1 个答案:

答案 0 :(得分:0)

虽然可以访问共享库的全局变量(NativeLibrary.getGlobalVariableAddress()),但最好定义一个能够执行所需操作的专用函数(即{{ 1}})。

您还需要注意您的代码是多线程感知的,这样编译器就不会认为您的循环MyLib.stop()无法更改,从而将其优化掉。您还需要确保您的循环不会独占CPU;如果你想要你的"停止"它需要不时地屈服。代码能够运行。