4

私のプログラムには、複数のスレッドが単一のマップで動作 (プットと取得) するシナリオがあります。スレッドのように、キー/値をマップに配置し、同時に別のスレッドが同じまたは異なるキーのキー/値をマップから取得しています。マップを同期させると、パフォーマンスに大きな問題が生じるため、ConcurrentHashMap に移行することにしました。このシナリオでは、特定の期間が経過すると (アプリケーションには認識されない)、アプリケーションでキーと値のペアのほとんどが不要になるという別の複雑さがあるため、同じもの (ガベージ コレクション) を削除してメモリを解放する必要があります。私のプログラムには、どのキー/値が不要であるかという考えはありませんが、weakreference を使用すると考えました。そのため、キー (文字列) に到達できない場合、一定期間後に自動的にガベージ コレクションが行われます。WeakhashMap で同じことを行うプロセスは知っていますが、ConcurrentHashMap でそれを行うプロセスは知りません。それで、ConcurrentHashMapでweakreferenceを行う方法を誰か教えてください。または、上記のシナリオを達成する他の方法はありますか?

4

1 に答える 1