yield和sleep相同的是都是静态方法,直接写在线程体中。
package com.sxt.state;
/**
* yield礼让线程,暂停线程 直接进入就绪状态不是阻塞状态
* @author
*
*/
public class YieldDemo01 {
public static void main(String[] args) {
MyYield my = new MyYield();
new Thread(my,"a").start();
new Thread(my,"b").start();
}
}
class MyYield implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"-->start");
Thread.yield();//礼让
System.out.println(Thread.currentThread().getName()+"-->end");
}
}
package com.sxt.state;
/**
* yield礼让线程,暂停线程 直接进入就绪状态不是阻塞状态
* @author
*
*/
public class YieldDemo02 {
public static void main(String[] args) {
new Thread(()->{
for(int i=0;i<100;i++) {
System.out.println("lambda-->"+i);
}
}).start();
for(int i=0;i<100;i++) {
if(i%20==0) {
Thread.yield();//main礼让
}
System.out.println("main-->"+i);
}
}
}