说明

一般在多线程编程时,需要控制线程的先后执行顺序,比如:主线程中写了子线程t1,想要的效果是需要t1先执行,然后再执行接下来的主线程操作,但是默认的是主线程先执行,所以问题就出现了,执行结果与预期结果不一致。下面将介绍Thread的join()方法来解决这个问题。

方法

有两个线程t1和t2,现在让t1比t2先执行:

Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
               Sysout.out.print("t1");
            }
        });
Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
               try {
                    // 引入t1线程,等待t1线程执行完
                    t1.join();
                } catch (InterruptedException e) {  
                     e.printStackTrace();
                }
               Sysout.out.print("t2");
            }
        });
t2.start();
t1.start();

执行结果

t1 t2


总结

多线程编程时,可通过join()方法控制线程的先后执行顺序。