yield方法作用:
放弃当前的cpu资源,将它让给其他的任务去占用cpu执行时间,但放弃的时间不确定,有可能刚刚放弃,就又马上获得cpu时间片。
示例代码:
package com.yf.yield;
public class MyThread extends Thread {
@Override
public void run() {
long beginTime = System.currentTimeMillis();
int count=0;
for(int i=0;i<50000000;i++){
//让出cpu资源
Thread.yield();
count=count+(i+1);
}
long endTime=System.currentTimeMillis();
System.out.println("用时:"+(endTime-beginTime)+"毫秒!");
}
public static void main(String[] args) {
MyThread myThread=new MyThread();
myThread.start();
}
}
运行结果
用时:20108毫秒!
通过注释掉Thread.yield();来再次运行,运行结果
用时:34毫秒!
对比可以发现yield()会让运行时间变慢,原因是会将cup让给其他资源。