エントリがタイムアウトし、一定期間後に削除されるマップを作成しようとしています。
基本的に<K, V> Map.put(K key, V value, long **time**)
、エントリは即座にマップに配置され、時間(ミリ秒) 後に期限切れになります。今後、削除されたエントリを復元する必要はありませんが、マップに含まれていないことを確認したいと思います。
例:map.put("foo", "bar", 60l * 1000l)
このキーと値のペアをマップ内に 1 分間 (60long と 1000long) 存続させます。
試行: ConcurentMap を使用しMap.put(K key, V value, long **time**)
て、次のように実装します。
1. 呼び出します。
2.時間(ミリ秒)super.put(key, value)
スリープするスレッドを作成します。 remove(key)
質問: コメントしてください/スレッドセーフ、一貫性、または私の試みの欠陥の点でこれが良い考えかどうか教えてください。これを達成するためのより良い方法があると思われる場合は、アドバイスを提供してください。
編集:返信ありがとうございます。ここではメモリは問題ではありません。エントリの寿命が短いことだけを気にしています。ありがとうございました。