タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとJavaとcacheに関するclavierのブックマーク (2)

  • Java でオンメモリキャッシュを実装するときにスレッドについて気をつけるべきこと - Qiita

    のように、Collections.synchronizedMap() でよしなにする方法がある。この方法でラップすると、メソッドアクセスの際に synchronized がかかるので安全になる。 ConcurrentHashMap と HashMap HashMap をマルチスレッドからアクセスする場合、get メソッドを使った場合でも synchronized をかけざるをえず、パフォーマンスが出ない。 ConcurrentHashMap ならば、取得時にはロックがかからないので、キャッシュには ConcurrentHashMap を使うことが望ましい。 Java 8 以後における ConcurrentHashMap によるキャッシュ実装 Java 8 では ConcurrentHashMap に computeIfAbsent メソッドが追加されている。これを利用すれば簡単にキャッシュ

    Java でオンメモリキャッシュを実装するときにスレッドについて気をつけるべきこと - Qiita
  • 2006-01-20

    キャッシュの機能を扱いたいときにはjava.refパッケージのクラスを使うのですが、 SoftReference, WeakReference, PhantomReference の3種類のクラスがあります(私は違いがよく分かっていません)。 以下は SoftReference を使って実装したときの例です。 巨大データが1つのとき。 private SoftReference ref = null; public BigData getBigData() { BigData data = null; if (ref != null) data = (BigData) ref.get(); if (data == null) { data = ...; // でかいデータを取得or作成 ref = new SoftReference(data); } return data; } 巨大なデ

    2006-01-20
  • 1