时间:2021-05-20
实例如下:
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(); //这句代码 建议放在 finally里执行 System.out.println(Thread.currentThread().getName() + "结束. 还有" + threadsSignal.getCount() + " 个线程"); } }}以上这篇Java实现监控多个线程状态的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java中ThreadLocal实例分析从概念上理解,threadlocal使变量在多个线程中相互隔离实现线程安全,threadlocal包装的变量最终都专属于
本文承接上一篇文章《Java多线程实例详解(一)》。四.Java多线程的阻塞状态与线程控制上文已经提到Java阻塞的几种具体类型。下面分别看下引起Java线程阻
Java多线程实例3种实现方法Java中的多线程有三种实现方式:1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,
本文实例讲述了Java实现的简单音乐播放器功能。分享给大家供大家参考,具体如下:应用名称:Java简单的音乐播放器用到的知识:JavaGUI编程,线程,IO开发
本文实例讲述了Java实现的简单数字时钟功能。分享给大家供大家参考,具体如下:应用名称:Java数字时钟用到的知识:JavaGUI编程,线程开发环境:win8+