| 代码如下 | 复制代码 |
importjava.util.concurrent.CountDownLatch; importjava.util.concurrent.Executor; importjava.util.concurrent.Executors;
/** * 测试监控类 * * @author * */ publicclassWatchThread {
/** * 测试函数 * * @throws InterruptedException */ publicvoidtestThread()throwsInterruptedException { intthreadNum =10; // 初始化countDown CountDownLatch threadSignal =newCountDownLatch(threadNum); // 创建固定长度的线程池 Executor executor = Executors.newFixedThreadPool(threadNum); for(inti =0; i < threadNum; i++) {// 开threadNum个线程 Runnable task =newTestThread(threadSignal); // 执行 executor.execute(task); } threadSignal.await();// 等待所有子线程执行完 // do work System.out.println(Thread.currentThread().getName() +"+++++++结束."); }
/** * 测试函数 */ publicstaticvoidmain(String[] args)throwsInterruptedException { WatchThread test =newWatchThread(); test.testThread(); }
/** * * @author jill * */ privateclassTestThreadimplementsRunnable { privateCountDownLatch threadsSignal;
publicTestThread(CountDownLatch threadsSignal) { this.threadsSignal = threadsSignal; }
publicvoidrun() { System.out.println(Thread.currentThread().getName() +"开始..."); // do shomething System.out.println("开始了线程::::"+ threadsSignal.getCount()); // 线程结束时计数器减1 threadsSignal.countDown(); //这句代码 建议放在 finally里执行 System.out.println(Thread.currentThread().getName() +"结束. 还有" + threadsSignal.getCount() +" 个线程"); } }
} | |
原神祈愿模拟器最新版
原神祈愿模拟器手机版是一款完整汉化的趣味原神抽卡模拟小游戏,
宝宝森林美食完整版
宝宝森林美食游戏最新版是一款十分有趣的休闲益智游戏,帮助宝宝
g沙盒仇恨官方英文版(gorebox)
G沙盒仇恨英文原版是一款最近非常火热的沙盒模拟类游戏,在这里
迷你世界测试服最新版2024
迷你世界测试服2021最新版,即迷你世界的先遣服版本,用户能
闪耀暖暖最新版2024
闪耀暖暖手游这是非常好玩的换装手游,游戏内容丰富有趣,游戏环