【发布时间】:2013-02-24 02:55:42
【问题描述】:
有人能解释一下Thread.yield() 方法和Thread.sleep() 方法的区别吗?
我的理解是:Thread.yield() 将监视器锁放弃给 JVM 决定下一步执行的其他线程,Thread.sleep() 将当前线程置于休眠模式给定的毫秒数,而不会放弃监视器锁。
【问题讨论】:
-
“Thread.yield() 放弃了监视器锁”。不,它没有。你是从哪里得到这个想法的?
-
我只是想知道...如果 Thread.yield 不放弃监视器的锁..den 如果其他线程具有高优先级,任何其他线程如何继续执行..?
-
另外,如果一个线程进入睡眠状态是否有可能......其他线程可能会继续执行......我的意思是其他线程可能会获得监视器锁并继续执行以及当线程唤醒时..它再次锁定...我仍然很困惑。
-
为什么会被标记为重复?链接的问题是关于 .NET 的,而这是关于 Java 的,完全不同的故事!
标签: java multithreading synchronization thread-safety