搜索
您的当前位置:首页java多线程之yield()方法详解

java多线程之yield()方法详解

来源:智榕旅游
java多线程之yield()⽅法详解

yiled()⽅法的作⽤是放弃当前CPU的资源,将资源让给其它线程,但放弃的时间不确定,有可能刚刚放弃,⼜马上获得了CPU时间⽚。下⾯看⼀个⼩例⼦,看⼀下具体效果。

MyThread t = new MyThread(); t.start();

Thread.sleep(2);

for (int i = 0; i < 9000; i++) { System.out.println(\"i=\" + i); } }

public static class MyThread extends Thread { private long beginTime = System.currentTimeMillis(); private int count = 0; @Override

public void run() { super.run();

for (int i = 0; i < 1000; i++) {

yield();

count = count + (i + 1);

System.out.println(\"count=\" + count); }

long endTime = System.currentTimeMillis();

System.out.println(\"⽤时:\" + (endTime - beginTime) + \"毫秒\"); } }

  看⼀下运⾏结果:

前三段是第⼀次运⾏的结果,可以看出来主线程和⼦线程是交替出现的,count是⼦线程打印的结果,i是主线程打印的结果。第四段和第五段分别是我第⼆次和第三次运⾏的结果,

因篇幅问题不能全部显示,请点此查看更多更全内容

Top