父线程等候10个子线程完成的例子

类别:Java 点击:0 评论:0 推荐:

这是个挺有趣的程序,我写了个例子同步了10个子线程,可以参考下:
public class Test {
 static Test test = null;
 static int childNum = 0;
 synchronized static void decSem(){
  childNum--;
  if(childNum == 0){
   synchronized(test){
    test.notify();
   }
  }
 }

 Test(){
  test = this;
 }
 
 void connectDB() throws InterruptedException{
  synchronized(this){
   childNum = 10;
   new TestThread().start();
   new TestThread().start();
   new TestThread().start();
   new TestThread().start();
   new TestThread().start();
   new TestThread().start();
   new TestThread().start();
   new TestThread().start();
   new TestThread().start();
   new TestThread().start();
   wait();
  }
 }
 public static void main(String[] args) throws InterruptedException {
  System.out.println("Start...");
  Test test = new Test();
  test.connectDB();
  System.out.println("End.");
 }
}

class TestThread extends Thread{
 public void run() {
  super.run();
  System.out.println("child thread");
  Test.decSem();
 }
}

本文地址:http://com.8s8s.com/it/it12311.htm