yield方法的作用是放棄當(dāng)前的CPU資源十厢,將它讓給其他的任務(wù)去占用CPU執(zhí)行時(shí)間。但放棄的時(shí)間不確定,也有可能剛剛放棄麸粮,馬上又獲得CPU時(shí)間片。
/**
* MyThread線程測試
* @author wuyoushan
* @date 2017/3/21.
*/
public class MyThread extends Thread {
@Override
public void run() {
long beginTime=System.currentTimeMillis();
int count=0;
for (int i=0;i<50000000;i++){
//Thread.yield();
count=count+(i+1);
}
long endTime=System.currentTimeMillis();
System.out.println("用時(shí):"+(endTime-beginTime)+"毫秒镜廉!");
}
}
/**
* @author wuyoushan
* @date 2017/3/20.
*/
public class Run {
public static void main(String[] args) throws InterruptedException {
MyThread myThread=new MyThread();
myThread.start();
}
}
程序的運(yùn)行結(jié)果為:
用時(shí):33毫秒弄诲!
將代碼:
//Thread.yield();
去掉注釋符號,再次運(yùn)行娇唯,運(yùn)行結(jié)果如下:
用時(shí):10546毫秒齐遵!
運(yùn)行變慢的原因是。yield()方法將CPU讓給其他資源導(dǎo)致速度的變慢塔插。
摘選自 java多線程核心編程技術(shù)-1.9