欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

线程的加入

程序员文章站 2022-07-12 10:54:37
...

如果当线程为多线程程序,假如存在一个线程A ,现在需要加入一个线程B,并要求线程B先执行完毕,在执行A程序,此时可以用Thread中的join()方法来完成。举个例子就好像你正在吃饭,有个人给你打电话,你扔下筷子去接电话,然后打完电话继续回来吃饭。
下面写一段代码加深理解:

 class t implements Runnable
{
    public void run()//run方法覆写
    {
        for(int i=0;i<5;i++)//下面这段代码执行5次
        {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }//休眠一秒
            System.out.println(Thread.currentThread().getName()+"-->"+i);//获取当前线程名字
        }
    }
}
public class join{
    public static void main(String[] args) throws InterruptedException {
        Thread t1=new Thread(new t());
        t1.setName("t1");//重命名
        t1.start();//启动线程
        for(int i=0;i<10;i++)
        {
            System.out.println(Thread.currentThread().getName()+"-->"+i);
            if(i==4)
            t1.join();//当i=4的时候主线程进入就绪状态,t1线程进入执行状态
        }
    }
}

执行结果如下:

main-->0
main-->1
main-->2
main-->3
main-->4
t1-->0
t1-->1
t1-->2
t1-->3
t1-->4
main-->5
main-->6
main-->7
main-->8
main-->9

Process finished with exit code 0

代码分析:主线程执行到i=4的时候,开始执行t1线程。