Теряет ли thread.yield() блокировку объекта, если вызывается внутри синхронизированного метода?

я понимаю, что Thread.currentThread().yield()— это уведомление планировщику потоков о том, что он может назначить цикл процессора какому-то другому потоку с таким же приоритетом, если таковой имеется такое присутствует. Мой вопрос: если текущий поток заблокировал какой-либо объект и вызывает yield(), он сразу потеряет эту блокировку? И когда планировщик потоков обнаружит, что нет такого потока для назначения цикла процессора, тогда поток, вызвавший yield(), снова будет бороться за блокировку объекта, который он потерял ранее??

Я не смог найти его в javadoc и на форумах [http://www.coderanch.com/t/226223/java-programmer-SCJP/certification/does-sleep-yield-release-lock] 50-50 ответы.

Я думаю, что yield()(скажем, поток 1) должен снимать блокировку, потому что, если какой-то поток (скажем, поток 2) с таким же приоритетом хочет работать с одним и тем же объектом, тогда у него может быть шанс, когда планировщик потоков в конце концов назначить чашку потоку2.

9
задан Gray 21 May 2012 в 12:26
поделиться