# join 方法

我们编写了一个 Join 类，用来输出数字0-9

```java
public class Join implements  Runnable{
    @Override
    public void run() {
        for (int i=0; i < 10; i++) {
            System.out.println(Thread.currentThread().getName()+"正在运行"+"第"+i+"次for循环.");
        }
    }
}
```

我们编写一个测试类 JoinThreadDemo, 里面有两个线程， 分别是主线程 和 jt1 线程。启动 jt1 线程以后, 设置该线程为join模式，观察运行结果。

```java
public class JoinThreadDemo {

    public static void main(String[] args) throws InterruptedException {

        Join jt1= new Join();

        Thread t1=new Thread(jt1,"jt1");
        t1.start();

        //在主线程中 调用 t1 线程, t1 线程使用join方法, 主线程被阻塞
        t1.join();

        for (int i = 0; i < 10; i++) {
            System.out.println("main thread 正在运行"+"第"+i+"次for循环.");
        }
    }
}
```

![输出结果](https://3876120153-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MeAUhQfs4IbJtX3pwu_%2F-MeVU4bd2v0m6iZAGizj%2F-MeVUri3Raf9DXTmXLZB%2Fjointhreaddemo.png?alt=media\&token=ba08a2f1-308c-4fe3-8a14-a838a8f1756e)

这一次运行结果显示，无论重复多少次，始终是 t1 先执行完毕, 再执行主线程。
