singleton - multithreading
-
Hi,
was passiert wenn ich folgenden code mit multithreading verwende?
static erzeugt ein einziges object des Singletons.
static Singleton instance; ... ruft den Konstruktor von Singleton auf?class Singleton { public: static Singleton& Instance() { static Singleton instance; return instance; } // Make Constructors, Assignment operator private/protected etc. };
-
In C++98 werden undefiniert viele Instanzen erstellt.
In C++11 wird nur 1 Instanz erstellt.Es kommt also auf den Compiler an.
-
warum gibt es den unterschied? was macht der compiler wie?
-
In C++98/03 gibt es keine Threads. Sollte ein Compiler dennoch Threads implementieren, so geschieht dies außerhalb der C++ Spezifikation.