• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

interview Question regarding less expensive type of locking in C#

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    interview Question regarding less expensive type of locking in C#

    I got a recent interview Question regarding less expensive type of locking in C#, I described a singleton and they asked my about threading issues, I stated that because the singleton had a single static instance I would have to use lock(someref) for the get property which returns it singleton instance. They then told me that doing a lock on every get would be expensive so what would be a cheaper alternative to locking on the get instance property for the singleton class.]

    Anyone know ?

    #2
    Re: interview Question regarding less expensive type of locking in C#

    I don't know how you do it in C# specifically, but what you want is some kind of atomic test and set. With a singelton, only the first call actually has to do anything, every other call just returns a static variable, so a lock is an unnecessary overhead.

    Though what might be better is to initial
    ise your singeltons at startup.
    Will work inside IR35. Or for food.

    Comment


      #3
      Probably more than you need to know about singleton and locking in C#.

      Linky

      Comment


        #4
        Offtopic, but very interesting new stuff in Intel's Haswell - hopefully C# and other languages include support very quickly -

        AnandTech - Making Sense of the Intel Haswell Transactional Synchronization eXtensions

        Comment


          #5
          Double checked locking

          In most cases for a singleton, the value is set after the first few calls (very often in the first call), so performing a lock on every subsequent call is unneccessary. This can be handled with an extra if statement and if it does need to be set, then go into a lock statement and restest inside the lock statement.

          Comment

          Working...
          X