线程池对执行同步或异步的任务很重要。本文展示如何利用Spring开发并监控线程池服务。创建线程池的其他两种方法已讲解过。
使用技术
JDK 160_21
Spring 305
Maven 302
第1步:创建Maven工程
下面是一个maven工程。(可以使用Maven或IDE的插件创建)。
第2步:添加依赖库
将Spring的依赖添加到Maven的pomxml文件中。
<!-- Spring 3 dependencies -->
<dependency>
<groupId>orgspringframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>orgspringframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springversion}</version>
</dependency>
使用下面的插件创建可执行jar包。
<plugin>
<groupId>orgapachemavenplugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>131</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
通过微软的ProcessMonitor可以监控软件
Process Monitor是来自微软官方的一款高级监视工具,可以实时监控、报告Windows文件系统、注册表、进程、线程的活动。
从界面上看,Process Monitor很像是被微软收购了的Sysinternals的Filemon和Regmon,但事实上它是完全重写的,并在Filemon和Regmon的基础上进行了增强,比如监视进程线程的启动和退出及其载入的DLL文件和内核驱动程序、丰富的非破坏性过滤、会话ID和用户名等大量的事件属性、可靠的进程信息、全面的线程堆栈、同步记录到日志文件、分析进程关系、可删除性搜索等等。
这些特性令Process Monitor成为一款强有力的系统诊断以及恶意软件捕捉工具。
Process Monitor支持Windows 2000/XP/Server 2003/Vista等系统,包括64-bit版本。
下载地址:>
WinPatrol也叫“Windows Watch Dog”,是一款出色的网络安全工具,能及时的发现蠕虫病毒、广告软件、间谍软件、cookies、木马程序以及
其它能攻击你电脑的恶意病毒。如果发现病毒,该程序会及时隔离,无需即时更新。它能告诉你那些程序是得到你允许的,而那些又是违法运行的。从而有效的保护你的电脑免受其他恶意程序的破坏。强烈推荐!!!!!
后台开启一个线程一直运行,每隔1分钟左右发送一个心跳报文给服务器,以确保时刻跟服务器链接。若超过3次服务器未对客户端发送的心跳报文做出回应则重新链接。 如果这么作的话,必须确保和服务器达成一定的应用层协议。
可以使用以下方式监控 Tomcat 内存和线程数:
监控 Tomcat 进程的内存使用情况,可以使用系统工具如 top(Linux/Unix)或 Task Manager(Windows),或者使用第三方监控工具如 jstat, jmap, VisualVM 等。
监控 Tomcat 线程数,可以使用 jstack 命令获取线程信息,然后统计线程数。例如,在 Linux/Unix 系统中,可以使用以下命令获取 Tomcat 进程的线程信息:
jstack -l <pid> | grep "javalangThreadState" | wc -l
其中 <pid> 是 Tomcat 进程的进程号。该命令会输出当前 Tomcat 进程中的线程数。
另外,也可以使用 Tomcat 内置的管理工具来监控内存和线程数。例如,在 Tomcat 8 或以上版本中,可以使用 Tomcat 自带的 Manager App 来监控 Tomcat 内存和线程数。在 Manager App 的首页上,可以看到 Tomcat 当前的内存使用情况和活动线程数。如果需要更详细的信息,可以点击页面上的 Server Status 或 Thread Pool 链接,查看更详细的信息。
CPU资源时,按照以下步骤进行查找:
(一):通过 top -p 12377 -H 查看java进程的有哪些线程的运行情况;
和通过jstack 12377 > stacklog生成Java线程的dump详细信息;
先用top命令找出占用资源厉害的java进程id,如图:# top
如上图所示,java的进程id为’52554′,接下来用top命令单独对这个进程中的所有线程作监视:
1 top -p 52554 -H
# top视图里面里面可以通过快捷键依次b ,x高亮显示top的列找出需要的线程,默认CPU排序,Sh
1根据进程号进行查询:
# pstree -p 进程号
# top -Hp 进程号
2根据进程名字进行查询:
# pstree -p `ps -e | grep server | awk '{print $1}'`
# pstree -p `ps -e | grep server | awk '{print $1}'` | wc -l
这里利用了管道和命令替换,
关于命令替换,我也是今天才了解,就是说用``括起来的命令会优先执行,然后以其输出作为其他命令的参数,
上述就是用 ps -e | grep server | awk '{print $1}' 的输出(进程号),作为 pstree -p 的参数
管道和命令替换的区别是:
管道:管道符号"|"左边命令的输出作为右边命令的输入
命令替换:将命令替换符"``"中命令的输出作为其他命令相应位置的参数
以上就是关于如何使用Spring开发和监控线程池服务全部的内容,包括:如何使用Spring开发和监控线程池服务、监控某个软件的所有 *** 作、请推荐一款监视后台程序运行的软件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)