yield()方法
该方法作用是放弃当前的CPU资源,将它让给其他的任务去占用CPU的执行时间。但是放弃的时间不确定,也许刚刚放弃就又获得了CPU的执行权。
package cn.zxyy.multiThread.Thread.yield;
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("用时:" + (endTime - beginTime)+"毫秒");
}
}
public class MyThreadTest {
public static void main(String[] args) {
MyThread thread1 = new MyThread();
thread1.start();
}
}
从运行结果上看,循环500000次计算count的值,每次都放弃CPU的执行权,总共耗时20秒左右。