title: When to use java.util.concurrent.Semaphore's acquire() and acquireUninterruptibly() method?
body: <p>I am new to Java concurrency/multi-threading. Can somebody please explain to me in what situations the acquire() and acquireUninterruptibly() must (or must not) be used, how they are different; and also how to use them (code sample?).</p>
  
  <p>Thank you very much.</p>