多线程的 join()方法简单应用

通过join方法可以使线程按照一定顺序执行。
作用:join()方法的作用是等待线程对象销毁。
join()方法具有能使线程排队运行的作用,有点类似于同步的效果。
join()除了无参方法之外,还重载了join(毫秒)的方法,此方法与sleep(毫秒)的区别是:
(1)、 join()操作底层用wait()来实现,可以释放锁。
( 2)、 sleep()不会释放锁。
join与synchronize的区别:
(1)、join在内部使用wait()方法进行等待,底层用wait()来实现。
(2)、synchronize关键字是以“对象监视器”为原理做同步操作。

以上都是一些join()方法的小知识,接下来具体用实例来看一下join方法如何使线程按一定方式执行。
如有以下线程A B C ,通过join()使线程按照C B A 顺序来执行:

public class ThreadGY1803 extends Thread{//通过继承来创建线程
private Thread thread;
    public ThreadGY1803(Thread thread) {
        this.thread =thread;
    }
    public ThreadGY1803(){
        this.thread=null;
    }

    @Override
    public void run() {//重写run方法
        if (thread!=null){
            try {
                this.join(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println(Thread.currentThread().getName());
    }


    public static void main(String[] args) {//join()等待线程执行结束才继续执行 ,假如在a线程中b线程进行b.join操作,a等待b结束再执行。
       ThreadGY1803 C = new ThreadGY1803();
        C.setName("C");
       ThreadGY1803 B = new ThreadGY1803(C);
       B.setName("B");
        A.start();
       B.start();
       C.start();

    }
}

执行结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值