0

私の問題は、Android os で Swig を介して Java に公開されているネイティブ NDK ライブラリの使用に関するものです。

ネイティブ ライブラリは OpenGLES エンジンです。アプリの存続期間中、Java コードは、エンジンにフィードするネイティブ クラスのインスタンスを作成する場合があります。私が気になるのは、これらのクラスが Java 側でガベージ コレクションされる可能性があることです。この場合、メイン エンジン スレッド (GLThread) とは別のスレッド (HeapWorker) が、swig によって生成された finalize メソッドを通じてオブジェクトを削除します。これにより、ネイティブ エンジンで同時実行の問題が発生し、HeapWorker スレッドによるオブジェクトの削除中にオブジェクトが使用される可能性があります。

次のことは可能ですか。

1 - GLThread と同期する何らかの方法でガベージ コレクターをカスタマイズしますか?

2 - ファイナライザ GLThread を実行しますか?

3 - ガベージ コレクション中に GLThread をロックしますか?

ご協力いただきありがとうございます。

4

0 に答える 0