A
singleton class has a limited (usually 1) number of instances and are accessed statically using static methods or a combination of instance methods and a static getInstance() accessor method.
Access to a singleton class method by multiple threads simultaneously is handled just like for any other kind of class -- if the method ain't synchronized, everybody gets "in". If the method is synchronized, the JVM serializes the invocations and lets each of them execute the method in turn.