title: Does thread.yield() lose the lock on object if called inside a synchronized method?
body: <p>I understand that <code>Thread.currentThread().yield()</code> is a notification to thread scheduler that it may assign cpu cycle to some other thread of same priority if any such is present.
  My question is: If current thread has got lock on some object and calls <code>yield()</code>, will it loses that lock right away? And when thread scheduler finds out there is no such thread to assign cpu cycle, then the thread which has called <code>yield()</code> will again be in fight to get lock on the object which it has lost earlier??</p>
  
  <p>I couldn't find it in javadoc and forums [http://www.coderanch.com/t/226223/java-programmer-SCJP/certification/does-sleep-yield-release-lock] have 50-50 answers.</p>
  
  <p>I think <code>yield()</code> (lets say thread1) should release lock because if some thread (lets say thread2) of same priority wants to operate on same object, then it can have chance when thread scheduler eventually assign cup to thread2.</p>