Java实现监控多个线程状态的实现
2015-07-23 13:59
731 查看
转载自http://blog.csdn.net/lxw2100/article/details/5944135
场景:需要启动多线程处理事情,而在所有事情做完之后,需要修改系统状态;那么如何判断所有线程(事情)都做完了呢?这就需要判断所有当前运行的线程状态了。
场景:需要启动多线程处理事情,而在所有事情做完之后,需要修改系统状态;那么如何判断所有线程(事情)都做完了呢?这就需要判断所有当前运行的线程状态了。
import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.concurrent.Executors; /** * 测试监控类 * * @author * */ public class WatchThread { /** * 测试函数 * * @throws InterruptedException */ public void testThread() throws InterruptedException { int threadNum = 10; // 初始化countDown CountDownLatch threadSignal = new CountDownLatch(threadNum); // 创建固定长度的线程池 Executor executor = Executors.newFixedThreadPool(threadNum); for (int i = 0; i < threadNum; i++) { // 开threadNum个线程 Runnable task = new TestThread(threadSignal); // 执行 executor.execute(task); } threadSignal.await(); // 等待所有子线程执行完 // do work System.out.println(Thread.currentThread().getName() + "+++++++结束."); } /** * 测试函数 */ public static void main(String[] args) throws InterruptedException { WatchThread test = new WatchThread(); test.testThread(); } /** * * @author jill * */ private class TestThread implements Runnable { private CountDownLatch threadsSignal; public TestThread(CountDownLatch threadsSignal) { this.threadsSignal = threadsSignal; } public void run() { System.out.println(Thread.currentThread().getName() + "开始..."); // do shomething System.out.println("开始了线程::::" + threadsSignal.getCount()); // 线程结束时计数器减1 threadsSignal.countDown(); System.out.println(Thread.currentThread().getName() + "结束. 还有" + threadsSignal.getCount() + " 个线程"); } } }
相关文章推荐
- java web 开发环境部署,zving框架
- HBase1.0.x JAVA 实例
- JDK动态代理
- java培训之junit4
- Java_ArrayList与List解析
- Android 4.4 Launcher3——导入eclipse进行调试
- Java IO 装饰者模式
- JavaIO流之创建字节输出流的2中方式
- struts2的s:iterator 标签 详解
- 03 JAVA 数组
- JAVA基础之集合(上)
- SpringMVC如何接受POST请求中的json参数
- java 学习书籍-想精通java的必看
- 初识java
- IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.i
- Java中如何遍历Map对象的4种方法
- eclipse快捷键
- JAVA中的异常处理相关知识
- struts详细解释拦截器
- 算法问题收集