线程礼让_yield和线程强制执行_join

线程礼让_yield和线程强制执行_join

  线程礼让  

1.礼让线程,让当前正在执行的线程暂停,但不阻塞
2.将线程从运行状态转为就绪状态
3.让cpu重新调度,礼让不一定成功!看CPU心情
public class TestYield implements Runnable{

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"开始打游戏了");
        Thread.yield();       //线程礼让
        System.out.println(Thread.currentThread().getName()+"游戏打完了");
    }

    public static void main(String[] args) {

        TestYield testYield=new TestYield();

        new Thread(testYield,"十三").start();
        new Thread(testYield,"十四").start();
    }
}

  Join

1.Join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞
2.可以想象成插队
//测试线程
public class TestJoin implements Runnable{
    @Override
    public void run() {

        for (int i = 0; i < 20; i++) {
            System.out.println("我是VIP,赶紧让开"+i);
        }
    }

    public static void main(String[] args) {

        TestJoin testJoin=new TestJoin();
        new Thread(testJoin).start();

        for (int i = 0; i < 100; i++) {
            if(i==30){
                try {
                    new Thread().join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("没有VIP"+i);
        }

    }
}

 

posted @ 2022-02-17 21:04  十三加油哦  阅读(42)  评论(0)    收藏  举报