Java实现监控多个线程状态的简单实例
作者:jingxian 发布时间:2022-01-25 02:03:38
标签:java,监控,线程
实例如下:
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() + " 个线程");
}
}
}


猜你喜欢
- 一,功能效果二,实现过程1,先写xml文件:dialog_keyboard.xml 注意事项(1),密码
- JSR303介绍在Java中提供了一系列的校验方式这些校验方式在javax.validation.constraints包中引入依赖<
- mybatis-plus自动配置mapper.xml与java接口映射本来没有mybatis-plus的话,这个工作是通过mybatis-s
- 本文实例讲述了C#采用OpenXml实现给word文档添加文字的方法,分享给大家供大家参考。具体方法如下:一般来说,使用OpenXml给wo
- 一、使用mybatis-spring-boot-starter1、添加依赖<dependency> <grou
- 本文实例讲述了Java使用Socket通信传输文件的方法。分享给大家供大家参考,具体如下:前面几篇文章介绍了使用Java的Socket编程和
- Spring Data JPA映射自定义实体类这个问题困扰了我2天=-=,好像也能使用 jpql解决先说下自己的功能:查询oracle最近s
- 在Android中子线程是不能更新ui的。所以我们要通过其他方式来动态改变ui视图,1、runOnUiThreadactivity提供的一个
- 对于导航组件的使用方式不是本文的重点,具体使用可以参考官方文档,导航组件框架是通过f
- 本文实例为大家分享了Android仿IOS UIAlertView对话框的具体代码,供大家参考,具体内容如下显示效果:我在参考链接中看到了作
- 前提:微信公众平台:注册微信认证的公众号也就是服务号 ,拥有跟高级权限的微信接口。(注册服务号需要一些企业信息,需自己或者公司解决)注: 2
- 出现问题描述: 1.Could not get a resource from the pool, Connection refused:
- 问题描述 idea启动tomcat后乱码了,并且,idea的各种编码都是设置的为UTF-8,但是中文就是乱码了。解决方法 进入idea的安装
- 本人亲测,在使用IDEA使用Maven模板创建项目或者在当前项目中New Project,Maven的以下三个配置参数会重置使用C:\Use
- 我们的spring cloud微服务一般是打成jar包发布的,Linux下启动jar包和windows下一样,都是java -jar 包名,
- 1.简介在本文中,我们将了解Spring Boot对spring Security的支持。简而言之,我们将专注于默认Security配置以及
- 本文实例为大家分享了Android实现双曲线折线图的具体代码,供大家参考,具体内容如下先看一下效果图1.先下载jar包 mpandroidc
- 本文记录一下,我从AndroidStudio 2.3.3升级到3.0,再升级到3.0.1一路上遇到的输入法之坑以及解决方案。前些天把Andr
- 上次面试中遇到的一个问题,问到System.out.println()中的out是不是内部类,当时就给问蒙了,直观感觉out应该是Syste
- 1. 前言Spring除了IOC和DI,还有另一个杀手锏功能——Spring AOP。AOP是一种面