yielddemo.java
来自「java 教程相应的代码 全是自己写的内附注释 很容易看明白的」· Java 代码 · 共 50 行
JAVA
50 行
package demo.chapter09.yield;
import java.util.Date;
public class YieldDemo {
private static class Runner implements Runnable {
private boolean yield;
public Runner(boolean yield) {
this.yield = yield;
}
@Override
public void run() {
Date start = new Date();
String name = Thread.currentThread().getName();
for (int i = 0; i < 10000; i++) {
if (i % 100 == 0) {
System.out.println(name + ":" + i / 100);
if (yield)
Thread.yield(); // 主动放弃已经获取的执行机会,转入就绪状态
}
}
Date end = new Date();
System.out.println(name + "共耗时:" + (end.getTime() - start.getTime()));
}
}
public static void main(String[] args) {
Thread t1 = new Thread(new Runner(true));
t1.setName("线程1");
t1.setPriority(10);
Thread t2 = new Thread(new Runner(false));
t2.setName("线程2");
Thread t3 = new Thread(new Runner(true));
t3.setName("线程3");
t3.setPriority(10);
t1.start();
t2.start();
t3.start();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?