Method 1
DataCenter* DataCenter::getInstance()
{
static DataCenter instance;
return &instance;
}
Method 2
DataCenter* DataCenter::getInstance()
{
if (!m_instanceFlag)
{
m_instance = new DataCenter();
m_instanceFlag = true;
}
return m_instance;
}
I am working on a multi threaded programming and DataCenter will be accessed by more than one thread. I used to have method 2 to get the instance of DataCenter and it worked fine. But I noted that I need to guard the singleton instance from being called by multi threads.
My question is first do I really need to guard the singleton instance? or does OS do this for me? Second questions is that, is the first method a right way to get the singleton instance?
Thanks in advance...