title: Is there a difference between Singleton and a class that can have only one user at a time?
body: <p>I think I understand the Singleton pattern. It seems to me that there are many cases where more than one user is accessing the single instance that the pattern enforces. But is there a refinement that prevents that instance from being used (even read-only) while another user is accessing it or is that still a Singleton?</p>
  
  <p>EDIT: So if a Singleton does not prevent more than one thread from accessing it, is there <strong>a standard way</strong> to enforce this further functionality. To be clear, if a thread attempts to get the instance before the first thread that accessed the Singleton is done, an exception is thrown or the thread blocks?</p>