线程控制--join线程

Posted wangdan1030

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程控制--join线程相关的知识,希望对你有一定的参考价值。

 在我们做项目的时候时常会有这样的一种需求:我们需要执行两个方法,一个方法要等另一个方法执行完才能执行,这样的状况放到多线程中要怎么实现呢?今天就来看看多线程中的join方法。     我们的均方法通常是把一个大问题分成许多小问题,每个小问题分配一个线程,当所有的小问题都得到处理后,在调用主线程来进一步操作。下面我们来看一个demo:
  public class ThreadTest extends Thread
    
    public ThreadTest(String name)
        super(name);
    
    
    public void run()
        for(int i=0;i<100;i++)
            System.out.println(getName() +""+i);
        
    
    
    public static void main(String[] args) throws Exception
    
        new ThreadTest("新线程").start();
        for(int i=0;i<100;i++)
            if(i==20)
                ThreadTest jt=new ThreadTest("被Join的线程");
                jt.start();
                jt.join();
            
            System.out.println(Thread.currentThread().getName()+" "+i);
        
    
解析:该类的main 方法使一个主线程,在main方法里面开通一个子线程“新线程”,然后循环到里面开启一个子线程,在执行join方法之前,所有的子线程不能执行,在join方法执行后,两个子线程--新线程和被join线程并发执行。子线程执行结束后主线程才执行。
总结:      执行稳重的实例并进行修改,你会发现,在这行过程中,子线程不执行完,主线程是不会执行的。这就是join对于线程的执行的控制。当然我们在运用的时候需要谨慎,尤其是像稳重的代码,当去掉 new  ThreadTest( "新线程" ).start();这句代码时,他就纯粹的主线程和子线程之间的关系,加入 new  ThreadTest( "新线程" ).start();就会存在两个子线程之间的并发问题,关于并发后续还会有分享。

以上是关于线程控制--join线程的主要内容,如果未能解决你的问题,请参考以下文章

多线程:控制线程

13.4 控制线程

13.4 控制线程

Java 控制线程

JAVA基础知识之多线程——控制线程

控制多线程执行顺序