日志文章

2019-12-25 aflfte2011

Yield线程礼让

package com.aflfte.state;
/**
 * Yield线程礼让
 * 暂停当前线程直接进入就绪状态不是阻塞状态
 * @author root
 *
 */
public class YieldDemo01 {
    public static void main(String[] args) {
        MyYield my=new MyYield();
        new Thread(my,"aa").start();
        new Thread(my,"bb").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.aflfte.state;
/**
 * Yield线程礼让
 * Yield出现在哪个线程如个线程就作出礼让动作
 * @author root
 *
 */
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);
        }
    }
}


« 线程合并(线程插队) | 线程阻塞(sleep的使用)»