两种方案:
        1>利用Thread.join()方法,使C进程等待AB进程完成后执行
        2>利用CountdownLatch定义一个计数器,在AB进程里用CountdownLatch. countDown()方法使计数器减少,在等待进程C中使用CountDownLatch.await()方法等待,直到计数器变为0,才开始执行
1.    思路:
a)    建立A B C三个线程,空跑模拟线程运行。
b)    在父进程中通过start()启动各子线程。
c)    利用上述两种方案完成任务。
2.    代码:
TestThread.java

public class TestThread {
    public static void main(String[] args){
        Thread A=new Thread(new Runnable() {
            @Override
            public void run() {
                int i=0;
                while(i<18){
                    try {
                        Thread.sleep(1000);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    i++;
                }
                System.out.println("A OK");
            }
        });
        Thread B=new Thread(new Runnable() {
            @Override
            public void run() {
                int i=0;
                while(i<10){
                    try {
                        Thread.sleep(1000);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    i++;
                }
                System.out.println("B OK");
            }
        });
        Thread C=new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    A.join();
                    B.join();
                }
                catch (Exception e) {
                    e.printStackTrace();
                }
                int i=0;
                while(i<6){
                    try {
                        Thread.sleep(1000);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    i++;
                }
                System.out.println("C OK");
            }
        });
        A.start();
        B.start();
        C.start();
    }
}


TestThread2.java

import java.util.concurrent.CountDownLatch;
public class TestThread2 {
    public static void main(String[] args){
        CountDownLatch count=new CountDownLatch(2);
        new Thread(new Runnable() {
            @Override
            public void run() {
                int i=0;
                while(i<18){
                    try {
                        Thread.sleep(1000);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    i++;
                }
                System.out.println("A OK");
                count.countDown();
            }
        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                int i=0;
                while(i<10){
                    try {
                        Thread.sleep(1000);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    i++;
                }
                System.out.println("B OK");
                count.countDown();
            }
        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    count.await();
                }
                catch (Exception e) {
                    e.printStackTrace();
                }
                int i=0;
                while(i<6){
                    try {
                        Thread.sleep(1000);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    i++;
                }
                System.out.println("C OK");
            }
        }).start();
    }
}