Hallo,
hier mal ein Singleton-Codeschnipsel von wikipedia.
Dieser Singleton hat den Nachteil, dass die getInstance()-Methode synchronisiert wird. Bei nebenläufigen Anwendungen, die alle auf den Singleton zugreifen wollen, könnte es daher zu Performanceproblemen kommen.
Schafft das hier Abhilfe?
Beste Grüße
hier mal ein Singleton-Codeschnipsel von wikipedia.
Java:
public final class Singleton {
/**
* Privates Klassenattribut,
* wird beim erstmaligen Gebrauch (nicht beim Laden) der Klasse erzeugt
*/
private static Singleton instance;
/** Konstruktor ist privat, Klasse darf nicht von außen instanziiert werden. */
private Singleton() {}
/**
* Statische Methode „getInstance()“ liefert die einzige Instanz der Klasse zurück.
* Ist synchronisiert und somit thread-sicher.
*/
public synchronized static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
Dieser Singleton hat den Nachteil, dass die getInstance()-Methode synchronisiert wird. Bei nebenläufigen Anwendungen, die alle auf den Singleton zugreifen wollen, könnte es daher zu Performanceproblemen kommen.
Schafft das hier Abhilfe?
Java:
public final class Singleton {
/**
* Privates Klassenattribut,
* wird beim erstmaligen Gebrauch (nicht beim Laden) der Klasse erzeugt
*/
private static Singleton instance;
/** Konstruktor ist privat, Klasse darf nicht von außen instanziiert werden. */
private Singleton() {}
/**
* Statische Methode „getInstance()“ liefert die einzige Instanz der Klasse zurück.
* Ist synchronisiert und somit thread-sicher.
*/
public static Singleton getInstance() {
if (instance == null) {
instance = createNewInstance();
}
return instance;
}
public synchronized static Singleton createNewInstance()
{
return new Singleton();
}
}
Beste Grüße