マルチスレッド環境でクラスのインスタンスが 1 つだけ作成されるようにするために、以下の構造を持つシングルトン クラスを作成します。
class Singleton {
private volatile static Singleton _instance;
private Singleton() {
// preventing Singleton object instantiation from outside
}
public static Singleton getInstanceDC() {
if (_instance == null) {
synchronized (Singleton.class) {
if (_instance == null) {
_instance = new Singleton();
}
}
}
return _instance;
}
}
null check
しかし、静的関数からオブジェクトを取得する前に実行中にすべてのスレッドが支払わなければならないペナルティを乗り越えることによって、クラスのパフォーマンスを向上させる方法はありますか?