我想开始一个用C ++编写的循环,直到我要求它(从Java)停止。 IE:
(在c ++中)
void loop(){
while(!stop){
// do something
}
}
Java中的:
MyLib.INSTANCE.loop();
然后调用类似的东西: MyLib.INSTANCE.stop = true;
有可能吗?
答案 0 :(得分:0)
虽然可以访问共享库的全局变量(NativeLibrary.getGlobalVariableAddress()
),但最好定义一个能够执行所需操作的专用函数(即{{ 1}})。
您还需要注意您的代码是多线程感知的,这样编译器就不会认为您的循环MyLib.stop()
无法更改,从而将其优化掉。您还需要确保您的循环不会独占CPU;如果你想要你的"停止"它需要不时地屈服。代码能够运行。