如何在 Java 中显示用 C++ 完成的计算的进度?
java应用程序通过JNI调用一个C++方法,我怎么能double progress;
在java应用程序和C++方法之间共享一个?
我真的不知道在 JNI 中是如何处理多线程的。
此外,目标平台是 Windows 和 Linux。
如何在 Java 中显示用 C++ 完成的计算的进度?
java应用程序通过JNI调用一个C++方法,我怎么能double progress;
在java应用程序和C++方法之间共享一个?
我真的不知道在 JNI 中是如何处理多线程的。
此外,目标平台是 Windows 和 Linux。
有多种方法可以报告从本机端到 Java 的进度。
一种是通过 JNI 从 C++ 调用 Java 对象上的方法。您可以在 C++ 计算方法本身或其他方法中传递对象。
另一种是与直接 ByteBuffer 共享内存区域。在 Java 中,调用ByteBuffer.allocateDirect()来创建缓冲区。将缓冲区传递给 C++,然后使用GetDirectBufferAddress()获取其内存地址。在 C++ 中,直接写入缓冲区。在 Java 中,轮询更改。