C++ で行われた計算の進行状況を Java で表示するにはどうすればよいですか?
Java アプリケーションは JNI を介して C++ メソッドを呼び出します。たとえば、Java アプリケーションと C++ メソッドの間で を共有するにはどうすればよいdouble progress;
でしょうか?
JNIでマルチスレッドがどのように処理されるかはよくわかりません。
また、対象プラットフォームは Windows と Linux です。
C++ で行われた計算の進行状況を Java で表示するにはどうすればよいですか?
Java アプリケーションは JNI を介して C++ メソッドを呼び出します。たとえば、Java アプリケーションと C++ メソッドの間で を共有するにはどうすればよいdouble progress;
でしょうか?
JNIでマルチスレッドがどのように処理されるかはよくわかりません。
また、対象プラットフォームは Windows と Linux です。
ネイティブ側から Java に進行状況を報告する方法は複数あります。
1 つは、JNI を介して C++ から Java オブジェクトのメソッドを呼び出すことです。C++ 計算メソッド自体、または他のメソッドでオブジェクトを渡すことができます。
もう 1 つは、メモリの領域を直接 ByteBuffer と共有することです。Java では、ByteBuffer.allocateDirect()を呼び出してバッファーを作成します。バッファーを C++ に渡し、そこでGetDirectBufferAddress()を使用してそのメモリ アドレスを取得します。C++ では、バッファに直接書き込みます。Java では、変更をポーリングします。