多线程时序控制
来源:互联网 发布:通达信是什么软件 编辑:程序博客网 时间:2024/05/27 06:54
最近在写Hbase的读写程序,但是写的时候执行起来效果真不是很好,因为要同时去读取多张表,读取全部的表之后才算是程序结束,那么就考虑用多线程读写,每次起20个线程,20个线程执行结束之后再创建20个线程,但是在实际用的时候会有很多问题,最大的问题就是子线程和主线程的时序搞得不是很清楚,在网上多方查找资料无果,就又看了看jdk doc,发现了一个类—CountDownLatch,以前一直没有用过,但是真的是和好用,demo如下:
package com.inspur.Thread;import java.util.concurrent.CountDownLatch;public class WaitSubThread { public static void main(String args[]){ CountDownLatch runingNum = new CountDownLatch(5); for(int i=0;i<5;i++){ new Thread(new SubTest(runingNum)).start(); } try { runingNum.await(); //等待所有的线程结束,如果有线程没有结束,主线程一直阻塞 System.out.println("主线程结束工作"); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}class SubTest implements Runnable{ private CountDownLatch runingNum; public SubTest(CountDownLatch runingNum){ this.runingNum = runingNum; } @Override public void run() { System.out.println("新线程开始工作"); try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程结束工作"); runingNum.countDown();//标识当前线程执行结束 }}
这样就很好的实现了子线程和主线程的时序控制了。
0 0
- 多线程时序控制
- UMX-T时序控制
- 基于事件的时序控制
- SD卡的控制方法与时序
- 多线程控制
- 数字电路,控制逻辑,组合逻辑电路,时序逻辑电路,时序控制(区分)
- 时序
- I2C驱动情景分析——怎样控制I2C时序
- SEMQ的一个不符合时序控制的传输现象
- 智能电视-时序控制(T-CON)电路的组成
- 中央处理器-第三节 时序产生器和控制方式
- 时序控制与晶振以及指令周期的关系
- FPGA中VGA的时序控制 (程序+全注释)
- I2C驱动情景分析——怎样控制I2C时序
- JAVA多线程的控制
- 控制java多线程同步
- 控制台下的多线程
- 多线程控制前台UI
- CloudSim源码分析-DatacenterBroker创建
- 2015-5-10分享pdf
- sql语句 execute、executeQuery和executeUpdate之间的区别
- iOS开发网络篇—搭建本地服务器
- php tips
- 多线程时序控制
- Android学习第二天 --一个简单的Android项目
- CloudSim源码分析之-startSimulation()
- android 二维码 扫描,生成,竖屏
- 创建一个监管策略
- http返回状态码总结
- socketpair
- JVM内部原理
- JDBC(二)大结果集分页,批处理,学习