Table of contents (for linking purposes...) Introduction Non-thread-safe version Simple thread safety via locking Double-checked locking Safety through initialization Safe and fully lazy static initialization Lazy<T> Exceptions Performance Conclusion Introduction The singleton pattern is one of the best-known patterns in software engineering. Essentially, a singleton is a class which only allows a