Join 与 CountDownLatch 之间的区别
import java.util.concurrent.CountDownLatch;public class CountDownLatchTest { public static CountDownLatch c = new CountDownLatch(2); public static void main(String[] args) throws InterruptedException { Thread t = new Thread(new Runnable() { @Override public void run() { System.out.println(1); c.countDown(); System.out.println(2); c.countDown(); } }); t.start(); c.await(); System.out.println(3); }}
点击查看结果
123
public class JoinCountDownLatchTest { public static void main(String[] args) throws InterruptedException { Thread parse1 = new Thread(new Runnable() { @Override public void run() { System.out.println("parse1 finish!"); } }); Thread parse2 = new Thread(new Runnable() { @Override public void run() { System.out.println("parse2 finish!"); } }); parse1.start(); parse2.start(); parse1.join(); parse2.join(); System.out.println("all parse finish!"); }}
点击查看结果
parse1 finish!parse2 finish!all parse finish!或者parse2 finish!parse1 finish!all parse finish!