Original link: Singleton / me.
To quote the article:
Few patterns are as controversial as the singleton pattern.
It was widely used in the early 00's, but in recent years it has been widely considered deprecated. Especially among the junior developers wanting to have the "right" opinions.
The reality about pros and cons are a bit more complex. And this article will take a deeper dive into matters.
There are examples in C++, Java, C# and VB.NET.
The last section does a deep dive into the topic of thread safe lazy initialization.