0

文字列値を保持し、要素がまだ存在しない場合は要素を追加するための同期メソッドを持つJavaコレクションが必要です(addIfAbsentはArrayList用です)。コレクションは交通量が多いでしょう。また、コレクションのエントリが期限切れになるまでのタイムアウトメカニズムが必要です。タイムアウトは約5秒である必要があります。

エレガントなソリューションの提案はありますか?タイムアウトメカニズムのないコレクションの選択も役立ちます。

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

4

2 に答える 2

3

何らかの形式のキャッシュメカニズムを実装しようとしていますか?もしそうなら、車輪の再発明をする必要はありません。EhCacheなどのキャッシュ実装を使用できます。

このスレッドを見てください:タイムアウト付きのコレクション(キャッシュ)に関する同様の質問

于 2012-08-13T17:10:56.120 に答える
2

タイムアウトを、コレクションに挿入されたアイテムが削除されるまでの時間値として解釈します。GuavaCacheの実装がニーズに適している可能性がありますか?putIfAbsentメソッドを直接公開するわけではありませんが、必要に応じて、CacheLoaderまたはを使用しCallableて値を生成できます。

String value = cache.get("key", new Callable<String>() { ... });

cache指定されたの値が含まれていない場合、callableが呼び出されkeyます。

于 2012-08-13T17:08:28.547 に答える