7 Join方法

发布时间 2023-06-29 23:23:57作者: 渺阴丶

7 Join方法

join方法的作用

  假设在主线程中调用子线程的join方法,主线程会在join方法处等待子线程执行完之后,再继续进行下去。这个过程也就是一个同步的过程。

什么是同步

以调用方角度来讲,如果

同步:需要等待结果返回,才能继续运行就是同步

异步:不需要等待结果返回,就能继续运行就是异步

//案例代码
public class ThreadJoin {

   static int r = 0;

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

   private static void test() throws InterruptedException {

       System.out.println("主线程开始执行");

       Runnable task = new Runnable() {
           @Override
           public void run() {
               try {
                   System.out.println("sub线程开始执行");
                   TimeUnit.SECONDS.sleep(1);
                   r = 10;
                   System.out.println("sub线程结束");
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           }
       };

       Thread t1 = new Thread(task,"t1");
       t1.start();
       //调用Thread中的join()方法,该方法在这里会使得主线程等待子线程结束后,再继续执行
       t1.join();
       System.out.println("r="+r);
       System.out.println("主线程结束执行");
   }
}

结果:

主线程开始执行
sub线程开始执行
sub线程结束
r=10
主线程结束执行