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 + -
显示快捷键?