Java での LRU キャッシュの開発
このコンテキストでは、LRU (最も最近使用されていない) キャッシュは、最も最近使用されていないキャッシュであると仮定します。エントリは保持する値が少ないため、キャッシュ容量を維持するために必要な場合に破棄できます。 Java でこれを実現するには、次のアプローチを検討してみましょう。
1. LinkedHashMap と同期
Collections#synchronizedMap で LinkedHashMap を使用することについて言及しました。これは有効なアプローチであり、LinkedHashMap の組み込みの二重リンク リスト構造を利用して LRU の動作を維持し、同期によってマルチスレッド環境でキャッシュが保護されます。
2.同時コレクション
新しい同時コレクションはパフォーマンスが向上していますが、組み込みの LRU 機能がありません。したがって、LinkedHashMap のロジックを組み込んで ConcurrentHashMap を拡張すると、高度な同時実行 LRU 実装を提供できます。
現在の実装
提案を検討した結果、次のことを選択しました。現時点では、LinkedHashMap Collections.synchronizedMap アプローチを使用します。将来これを再検討する場合、ConcurrentHashMap を拡張することが実行可能なオプションになる可能性があります。
参考までに、現在の実装のスニペットを以下に示します。
<code class="java">private class LruCache<a b> extends LinkedHashMap</a><a b> { private final int maxEntries; public LruCache(final int maxEntries) { super(maxEntries + 1, 1.0f, true); this.maxEntries = maxEntries; } // Check if the cache exceeds its maximum size @Override protected boolean removeEldestEntry(final Map.Entry</a><a b> eldest) { return super.size() > maxEntries; } } Map<string string> example = Collections.synchronizedMap(new LruCache<string string>(CACHE_SIZE));</string></string></a></code>
このキャッシュは、removeEldestEntry メソッドを利用して最小限のものを削除します。キャッシュが最大サイズに達したときに最近使用されたエントリは、LRU の動作を維持します。
以上がJava で LRU キャッシュを実装する方法: LinkedHashMap と ConcurrentHashMap?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
