线程控制--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线程的主要内容,如果未能解决你的问题,请参考以下文章