2

如何在 Java 中显示用 C++ 完成的计算的进度?

java应用程序通过JNI调用一个C++方法,我怎么能double progress;在java应用程序和C++方法之间共享一个?

我真的不知道在 JNI 中是如何处理多线程的。

此外,目标平台是 Windows 和 Linux。

4

1 回答 1

1

有多种方法可以报告从本机端到 Java 的进度。

一种是通过 JNI 从 C++ 调用 Java 对象上的方法。您可以在 C++ 计算方法本身或其他方法中传递对象。

另一种是与直接 ByteBuffer 共享内存区域。在 Java 中,调用ByteBuffer.allocateDirect()来创建缓冲区。将缓冲区传递给 C++,然后使用GetDirectBufferAddress()获取其内存地址。在 C++ 中,直接写入缓冲区。在 Java 中,轮询更改。

于 2013-04-02T16:23:22.367 回答