【Java并发】1.9 yeild方法
yeild方法的作用是放弃当前cpu的资源,将它让给其他任务去占用CPU执行时间。但放弃时间不确定,可能刚刚放弃,马上又获得CPU时间片。
public class MyThread extends Thread {
@Override
public void run() {
long beginTime = System.currentTimeMillis();
int count = 0;
for (int j = 0; j < 5000000; j++) {
//Thread.yield();
count = count + (j+1);
}
long endTime = System.currentTimeMillis();
System.out.println("用时:"+(endTime-beginTime)+"ms");
}
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
用时5ms
上面程序运行耗时5ms,如果把Thread.yield()注释取消,程序运行:
用时:462ms