タグ

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

タグの絞り込みを解除

javaとsingletonに関するLyoのブックマーク (2)

  • シングルトンパターンの遅延初期化をスレッドセーフにするには - じゅんいち☆かとうの技術日誌

    前回、前々回と割とヘビーな仕様の話だったので、今回は若干実用的なネタとして、シングルトンパターンの遅延初期化をメモリモデルの視点から、どのようにすればスレッドセーフになるか考えてみたいと思います。 そのシングルトンの遅延初期化はスレッドセーフか 以下のようなシングルトンパターンは日常的に使うデザインパターンの一つだと思います。 ただ、今回はSingletonクラスのgetInstanceメソッドに、わざとロックを掛けずに実装してみました。この場合にどういうことが起こりうるか考えてみたいと思います。 public class Singleton { private static Singleton instance; public static Singleton getInstance() { // バリアがない if (instance == null) { // Normal Load

    シングルトンパターンの遅延初期化をスレッドセーフにするには - じゅんいち☆かとうの技術日誌
  • JavaとSingletonとLazyLoad - _development,

    久しぶりにSingletonを自前で書こうとしたら書き方を忘れていた。 のでググったりを見たりしながら思い出した。 なんとなく以下の二点を覚えていたので、そのあたりの記憶を頼りに。 HogeHogeHolder的な内部クラスを使っていた LazyLoad(遅延初期化)になっていた Effective Javaから 「Effective Java, 第2版, Joshua Bloch, 2008」にSingletonパターンの記載がある。 ひとつはPublic finalのフィールドによるSingleton。 package com.undrdevelopment.singleton; public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { } } もうひとつはstat

    JavaとSingletonとLazyLoad - _development,
  • 1