title: Code synchronization - prevent a block from executing
body: <p>I have a <code>-(void) downloadFile</code> method that can be called from multiple threads.
  I'd like to create a situation where ONLY a single thread can execute the method - the first thread that's ready; Other threads should SKIP the call and just continue with their other job (without blocking\waiting for anything).</p>
  
  <p>What mechanism should I use to achieve that?</p>