【发布时间】:2014-11-07 09:30:11
【问题描述】:
到目前为止,我对wait() 和yield() 方法的理解是,当线程不执行任何任务并让CPU 执行其他线程时调用yield()。 wait() 在某些线程被搁置时使用,通常用于同步的概念。但是,我无法理解它们在功能上的区别,我不确定我所理解的是对还是错。有人可以解释一下它们之间的区别(除了它们所在的包)。
【问题讨论】:
-
好吧,如果你
.wait(),另一个线程必须.notify()你——在完全相同的对象引用上。.yield()只是对 JVM 的一个提示,“如果你想安排我出去,你暂时可以” -
那么他们不是都在做同样的任务——等待其他线程可以执行吗?还有,当使用yield()时,线程如何回到可运行状态?
标签: java multithreading