疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

java多线程中join用法


 

  thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B.

  package com.wzs;

  /**

  * Java多线程中join用法

  *

  * @author Administrator

  *

  */

  public class JoinTest {

  public static void main(String[] args) {

  BThread bThread = new BThread("-BThread-");

  AThread aThread = new AThread(bThread, "-AThread-");

  bThread.start();

  aThread.start();

  }

  }

  class AThread extends Thread {

  BThread bThread;

  public AThread(BThread bThread, String str) {

  super(str);

  this.bThread = bThread;

  }

  @Override

  public void run() {

  for (int i = 0; i < 5; i++) {

  System.out.println(Thread.currentThread()。getName() + " : " + i);

  try {

  bThread.join();

  } catch (InterruptedException e) {

  e.printStackTrace();

  }

  }

  }

  }

  class BThread extends Thread {

  public BThread(String str) {

  super(str);

  }

  @Override

  public void run() {

  for (int i = 0; i < 5; i++) {

  System.out.println(Thread.currentThread()。getName() + " : " + i);

  try {

  Thread.sleep(1000);

  } catch (InterruptedException e) {

  e.printStackTrace();

  }

  }

  }

  }

  输出结果:

  -BThread- : 0

  -AThread- : 0

  -BThread- : 1

  -BThread- : 2

  -BThread- : 3

  -BThread- : 4

  -AThread- : 1

  -AThread- : 2

  -AThread- : 3

  -AThread- : 4