Java多线程知识点总结——进阶篇(十二) 之 Join方法 & 优先级 & yield方法

join方法

方法说明:等待该线程终止。
通俗来说就是 当A线程执行到了B线程的.join()方法时,A就会等待。等B线程都执行完,A才会执行。

样例代码如下:

class Demo implements Runnable {
    public synchronized void run() {
        for (int x = 0; x < 70; x++) {
            try {Thread.sleep(1);} catch (InterruptedException e) {}
            System.out.println(Thread.currentThread().toString() + "....." + x);
        }
    }
}

class JoinDemo {
    public static void main(String[] args) throws Exception {
        Demo d = new Demo();
        Thread t1 = new Thread(d);
        Thread t2 = new Thread(d);
        t1.start();
        t2.start();

        t1.join();// 让出执行权,先让t1执行完。。

        System.out.println("over");
    }
}

运行结果为:

Thread[Thread-0,5,main].....0
Thread[Thread-0,5,main].....1
。。。。
Thread[Thread-0,5,main].....69
over
Thread[Thread-1,5,main].....0
Thread[Thread-1,5,main].....1
。。。。
Thread[Thread-1,5,main].....68
Thread[Thread-1,5,main].....69

优先级

优先级其实可以认为就是线程的权重,权重高的,CPU分配的资源就相对多些!
我们开辟的线程默认的优先级是 5 ,上面例子的输出结果也有显示。
设置优先级的API为:

new Thread().setPriority(int newPriority)

yield方法

方法说明:暂停当前正在执行的线程对象,并执行其他线程。
如果在一个多线程运行的代码中,如果不添加减缓线程运行的方法时,那么有可能某个线程会输出一大片内容后其他线程再执行
如果添加了yield方法,那么就可以减缓一下当前线程的执行速度,就可以达到其他线程都被平均执行的可能!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值