测试小案例:实现线程的程序执行
计划:(1)应用countdownlatch形式
(2)应用thread与join形式实现

第一种计划

package com.high.current08;import java.util.concurrent.CountDownLatch;public class OrderThread1 extends Thread {    private CountDownLatch latch;    public OrderThread1(CountDownLatch latch) {        this.latch = latch;    }    @Override    public void run() {        System.out.println("Thread:" + Thread.currentThread().getName() + " is running");        try {            Thread.sleep(5000);        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println("Thread:" + Thread.currentThread().getName() + " is end");        latch.countDown();    }}
package com.high.current08;import java.util.concurrent.CountDownLatch;public class TestOrder1 {    public static void main(String[] args) throws InterruptedException {        int number = 3;        CountDownLatch latch =  new CountDownLatch(number);        long t1=System.currentTimeMillis();        for(int i=0;i<3;i++){            OrderThread1 demo = new OrderThread1(latch);            demo.start();        }        latch.await();        System.out.println("main is end,and it spent "+(System.currentTimeMillis()-t1)+" ms");    }}

第二种计划

package com.high.current08;public class OrderThread2 extends Thread{    @Override    public void run(){        System.out.println("Thread:"+Thread.currentThread().getName()+" is running");        try {            Thread.sleep(5000);        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println("Thread:"+Thread.currentThread().getName()+" is end");    }}
package com.high.current08;public class TestOrder2 {     public static void main(String[] args) throws InterruptedException {        OrderThread2 thread1 = new OrderThread2();        OrderThread2 thread2 = new OrderThread2();        OrderThread2 thread3 = new OrderThread2();        long t1=System.currentTimeMillis();        thread1.start();        thread2.start();        thread3.start();        thread1.join();        thread2.join();        thread3.join();        System.out.println("main is end,and it spent "+(System.currentTimeMillis()-t1)+" ms");     }}

GITHUB