【发布时间】:2013-04-02 16:02:00
【问题描述】:
如何在 Java 中显示用 C++ 完成的计算的进度?
java 应用程序通过 JNI 调用 C++ 方法,我如何在 java 应用程序和 C++ 方法之间共享一个 double progress;?
我真的不知道 JNI 中是如何处理多线程的。
此外,目标平台是 Windows 和 Linux。
【问题讨论】:
-
我认为你不需要共享内存,你只需要从 C++ 调用一个 Java 方法并传递一个双精度
currentProgress / total这会给你一个 0-1 范围内的双精度值. -
@ddriver 我正在调用 c++ 代码 来自 Java。第一次调用将启动算法(在新线程上,java 或 C++)。现在,按照您的建议,如果两个线程彼此不认识,第二个调用如何访问
currentProgress变量? -
@ddriver 或者,我这样说,你建议调用一个方法来访问
currentProgress。你的建议我没有遵循的是:谁在修改这个currentProgress,因此,谁在运行实际的计算?
标签: java c++ multithreading java-native-interface shared-memory