yield()方法的解释:放弃当前cpu资源,将它让给其他的任务去占用CPU执行时间。但放弃的时间不能确定,有可能刚刚放弃,但马上又获得CPU时间片。
线程代码:
public class MyThread extends Thread {
@Override
public void run() {
long beginTime = System.currentTimeMillis();
int count = 0;
for (int i = 0; i < 500000000; i++) {
//Thread.yield();这里是测试用的,
count = count + (i + 1);
}
long endTime = System.currentTimeMillis();
System.out.println("用时:" + (endTime - beginTime) + "毫秒!");
}
}
执行代码:
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
执行结果(第一个为注释版本,第二个为去掉注释):
源码地址:https://github.com/lilinzhiyu/threadLearning