我对产量方法的需求和使用感到困惑。首先我的问题是,如果我们在runnablestate中有两个不同优先级的线程,那么jvm是否给予两个线程以循环方式执行的同等机会,或者高优先级的线程将优先?编辑: - 假设OS是windows XP。Yield Method用于允许其他高优先级的线程?
现在让我们来介绍一下线程类的方法。 Yield方法使当前正在执行的线程对象暂时暂停并允许其他线程(具有更高优先级或相同优先级)执行。
在http://oreilly.com/catalog/expjava/excerpt/index.html处给出的一篇文章中,如果在任何时候给出一个比当前线程更高优先级的线程变为可运行的,它将抢占较低优先级的线程并开始执行,这也是yield做/
所以看起来像从上面的语句产量是由jvm自动照顾。不确定什么产量方法提供额外的在这里?我所有的问题
感谢彼得伟大的回答。我对产量方法的理解是: - 产量的目的是为了节省一个不太重要的线程/操作的CPU周期,以便它可以用于高优先级的进程。 –
理论上是的,但是它唯一有用的是,如果另一个线程等待在CPU中轮流(因为没有CPU空闲)。如果你不这样做,另一个线程可能会在几微秒内切换。 –