* yield()方法:
* -提出申请释放CPU资源,至于能否成功释放取决于JVM决定。
* -调用yield()方法后,线程仍然处于RUNNABLE状态,线程不会进入阻塞状态。
* -调用yield()方法后,线程处于RUNNABLE状态,就保留了随时被调用的权利。
*执行结果:从结果1看,a释放CPU成功后,b就抢到了CPU执行权,接着b也释放CPU成功,a抢到了CPU执行权;从结果2看,a并没有成功释放CPU。
public class MyYield implements Runnable {
@Override
public void run() {
Thread.yield();
}
public static void main(String[] args) throws InterruptedException {
MyYield myThread = new MyYield();
Thread thread = new Thread(myThread,"a");
Thread thread2 = new Thread(myThread,"b");
thread.start();
thread2.start();
}
}
领取专属 10元无门槛券
私享最新 技术干货