The link that you provided shows an implementation and mentions that the implementation is not thread safe but does not state why (I think there are some links missing there).
IMO, and as pointed out here
, the basic implementation of Singleton should be thread safe, as long as you are using the static constructor for initializing the instance. The static constructor is thread safe so it's OK.
The access to the instansiation is not thread safe so the class that is inside the singleton should also be thread safe. If not, then you may need to limit the access to the actual instansiation (an example exists in the link I provided).