I'm a .NET and Java developer who is relatively new to threading. I'd like to know why static fields, static constructors, etc are generally considered "threadsafe".
For example, when constructing a singleton in .NET, one of the tricks to make it threadsafe is to make some of the components of the pattern static.
Please let me know if any of my above assumptions are incorrect.