【Java】线程join方法

来源:互联网 发布:国密算法标准 编辑:程序博客网 时间:2024/05/18 17:03

join是java多线程的里的方法。它的作用是什么?

java中的任意代码段,都可能会被任意的线程执行。代码段中可以是任意的代码,比如,启动了一个线程。如果是这种情况,就可以用join方法了。

假设当前代码段A启动了线程t,执行当前的代码的线程假定为a,如果此时带码段A中写有对t调用join的代码,那么意味着,当前的线程不能运行结束,必须等待t线程结束才可以结束,换句话说join起的作用是一种同步,让当前线程等待另一个开启的线程的结束。

例子:

package ThreadTest;class Code{public void test(){System.out.println("test() starts");try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("test() end");}}public class Case4 {public static void main(String[] args) {Code c = new Code();Thread t = new Thread(new Runnable(){@Overridepublic void run() {c.test();}});t.start();try {t.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("我一定在test之后出现");}}


可以看到,code里面的代码执行了10秒,那么main可定是先结束。但是main的最后一句是在test之后出现,说明main线程等待t线程结束才结束的。

原创粉丝点击