Java - jna从Java调用本机循环,并从其他函数停止它
java-JNA call a native loop from Java and stop it from an other function
我想启动一个用c++编写的循环,直到我要求它(从Java)停止。即:
(c++)void loop(){
while(!stop){
// do something
}
}
Java: MyLib.INSTANCE.loop();
则调用如下代码:MyLib.INSTANCE.stop = true;
虽然您可以访问共享库的全局变量(NativeLibrary.getGlobalVariableAddress()
),但最好是定义一个专用函数来做您想做的事情(即MyLib.stop()
)。
你还需要注意你的代码是多线程感知的,这样编译器就不会认为你的循环的stop
不能改变,从而优化它。你还需要确保你的循环不会独占CPU;如果你想让你的"停止"代码能够运行,它需要不时地屈服。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- Java 和其他语言在生成子序列时的输出差异
- 您如何共享Java功能而不提供其他源代码
- 通过其他线程通过JNI呼叫保存的Java对象
- 用java编写源代码,并将其编译为其他语言的各种可执行文件?多重编译
- 使用大多数Java代码制作可执行文件,但可能添加了其他语言
- 库在C/C++和其他语言中重现Java原语hashCode逻辑
- 从Java调用WinMain:可能吗?任何其他方式
- Java:接收指向其他方法(lambda)的指针的方法
- 如何通过套接字将double或任何其他随机类型从Java传递到C++
- 为什么C/C++有不同于C#和Java等其他语言的头文件
- Java - jna从Java调用本机循环,并从其他函数停止它
- 为什么在MongoDB或CouchDB中使用Javascript而不是其他语言,如Java, c++
- 捕获 Segfault 或任何其他错误/异常/信号C++例如在 Java 中捕获异常
- 有没有其他方法可以从 Java 运行.exe
- Objective-c选择器,其他语言如c++, python, ruby, java, javascript有类似的东
- Switch语句:在C v/s中逻辑是否不同.其他语言,比如Java