0

ユーザーはPlayer.close()、ネイティブコードによって管理されているいくつかの重要なリソースを解放し、プレーヤーオブジェクト用に作成されたいくつかの内部Javaスレッドを強制終了するために呼び出すことになっています。ただし、ユーザーがそれを呼び出すことができなかったため、リソースリークが発生しました。内部スレッドが強制終了されていないため、Finalizeメソッドが呼び出されないため、Finalizeメソッドの追加は機能しません...

この状況にどのように対処する必要がありますか?

編集:

ファントム参照を調べます。さらに、プレーヤーオブジェクトがgcの対象になるように、これらの集約されたスレッドを終了するべきではありませんか?

4

2 に答える 2

2

内部スレッドがこれらのものへの弱い参照のみを保持するようにします。

おそらく、ファントム参照について学ぶことを検討してください。

于 2011-06-01T12:41:39.300 に答える
2

それでもそれfinalizeが唯一の方法だと思いますが、GCを開始する機会を与えるには、注意深く配置された弱参照を使用する必要があります。

于 2011-06-01T12:42:25.250 に答える