首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java主线程等候子线程执行完毕-CountDownLatch

2012-09-25 
Java主线程等待子线程执行完毕-CountDownLatch主线程:?[java] view plaincopyprint?//Main主线程??publicc

Java主线程等待子线程执行完毕-CountDownLatch

主线程:

?

[java] view plaincopyprint?
  1. //Main主线程??
  2. publicclassMainThread?{???
  3. ???
  4. ????publicstaticvoid?main(String[]?args)?throwsInterruptedException?{???
  5. ????????longstartTime?=?System.currentTimeMillis();???
  6. ????????intthreadNum?=?5;//线程数??
  7. ????????//定义正在运行的线程数??
  8. ????????CountDownLatch?runningThreadNum?=?newCountDownLatch(threadNum);??
  9. ????????System.out.println(Thread.currentThread().getName()+"-start");??
  10. ????????//创建多个子线程??
  11. ????????for(inti?=?0;?i?<?threadNum;?i++)?{???
  12. ????????????newSubThread(runningThreadNum).start();??
  13. ????????}??
  14. ????????//等待子线程都执行完了再执行主线程剩下的动作??
  15. ????????runningThreadNum.await();??
  16. ????????System.out.println(Thread.currentThread().getName()+"-end");??
  17. ????????longendTime?=?System.currentTimeMillis();???
  18. ????????System.out.println("runningTime:"+(endTime-startTime));??
  19. ????}??
  20. }??

?

子线程:

?

[java]?view plaincopyprint?
  1. //子线程??
  2. publicclassSubThread?extendsThread{??
  3. ???
  4. ????//子线程记数器,记载着运行的线程数??
  5. ????privateCountDownLatch?runningThreadNum;???
  6. ???
  7. ????publicSubThread(CountDownLatch?runningThreadNum){???
  8. ????????this.runningThreadNum?=?runningThreadNum;???
  9. ????}??
  10. ???????
  11. ????@Override??
  12. ????publicvoidrun()?{???
  13. ????????System.out.println(Thread.currentThread().getName()+"-start");??
  14. ????????System.out.println(Thread.currentThread().getName()+"-do?something");??
  15. ????????System.out.println(Thread.currentThread().getName()+"-end");??
  16. ????????runningThreadNum.countDown();//正在运行的线程数减一??
  17. ????}??
  18. }??

热点排行