yield方法的作用是放弃当前的CPU资源,将它让给其他的任务去占用CPU执行时间。但是放弃的时间不确定,有可能刚刚放弃,马上又获得CPU资源。
示例代码:
public class Mythread extends Thread{
private long i = 0;
@Override
public void run(){
long beginTime = System.currentTimeMillis();
int count = 0;
for (int i = 0; i <5000000; i++) {
//Thread.yield();
count += i;
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - beginTime);
}
}
public class Main {
public static void main(String[] args) {
Mythread mythread = new Mythread();
mythread.start();
}
}
输出为1890
如果把Tread.yield注释掉,结果为