在linux下运行多线程程序,想查看各个线程的运行情况,怎么办?

Linux下查看某进程的线程状态:

1.jps或top或ps -ef|grep java,找到需要的进程pid;

2.jstack pid,查看pid的所有线程状态信息;

下面为一个示例:进程6798启动了5个线程,其他两个正在跑,另外三个进入了睡眠状态。[[email protected] topology]# jstack 6798

2015-03-02 09:49:05

Full thread dump Java HotSpot(TM) 64-Bit Server VM (17.1-b03 mixed mode):

"pool-1-thread-5" prio=10 tid=0x00007f956c0cb000 nid=0x1a9e runnable [0x00007f95269a9000]

java.lang.Thread.State: RUNNABLE

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:129)

at oracle.net.ns.Packet.receive(Unknown Source)

at oracle.net.ns.DataPacket.receive(Unknown Source)

at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)

at oracle.net.ns.NetInputStream.read(Unknown Source)

at oracle.net.ns.NetInputStream.read(Unknown Source)

at oracle.net.ns.NetInputStream.read(Unknown Source)

at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:979)

at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:951)

at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:435)

at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:182)

at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:630)

at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:961)

at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:532)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1037)

at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2905)

at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2946)

- locked <0x00007f9564b03cf0> (a oracle.jdbc.driver.T4CPreparedStatement)

- locked <0x00007f95527be288> (a oracle.jdbc.driver.T4CConnection)

at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)

at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)

at org.hibernate.loader.Loader.getResultSet(Loader.java:1778)

at org.hibernate.loader.Loader.doQuery(Loader.java:662)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)

at org.hibernate.loader.Loader.doList(Loader.java:2211)

at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)

at org.hibernate.loader.Loader.list(Loader.java:2090)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)

at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)

at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)

at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)

at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)

at com.hc360.storm.dao.BaseDao.query(BaseDao.java:753)

at com.hc360.storm.dao.BaseDao.query(BaseDao.java:676)

at com.hc360.storm.dao.CompassProdDao.resetFreeBusinComplete(CompassProdDao.java:80)

at com.hc360.storm.service.CompassManage.resetBusinCompass(CompassManage.java:621)

at com.hc360.storm.service.CompassManage.saveBusinInfo(CompassManage.java:456)

at com.hc360.storm.service.CompassManage.initBusinScore(CompassManage.java:215)

at com.hc360.storm.service.CompassManage.initUserBusinScore(CompassManage.java:270)

at sun.reflect.GeneratedMethodAccessor341.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at com.hc360.storm.service.BusinessInvocationHandler.invoke(BusinessInvocationHandler.java:42)

at $Proxy1.initUserBusinScore(Unknown Source)

at com.hc360.storm.newinit.BatchInitUser.initOneUser(BatchInitUser.java:59)

at com.hc360.storm.newinit.InitUserTask.run(BatchInitUser.java:91)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:662)

"pool-1-thread-4" prio=10 tid=0x00007f956c0c9800 nid=0x1a9d waiting on condition [0x00007f9526aab000]

java.lang.Thread.State: TIMED_WAITING (sleeping)

at java.lang.Thread.sleep(Native Method)

at com.hc360.storm.newinit.InitUserTask.run(BatchInitUser.java:81)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:662)

"pool-1-thread-3" prio=10 tid=0x00007f956c0c8000 nid=0x1a9c waiting on condition [0x00007f9526bac000]

java.lang.Thread.State: TIMED_WAITING (sleeping)

at java.lang.Thread.sleep(Native Method)

at com.hc360.storm.newinit.InitUserTask.run(BatchInitUser.java:81)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:662)

"pool-1-thread-2" prio=10 tid=0x00007f956c0c6800 nid=0x1a9b waiting on condition [0x00007f9526cad000]

java.lang.Thread.State: TIMED_WAITING (sleeping)

at java.lang.Thread.sleep(Native Method)

at com.hc360.storm.newinit.InitUserTask.run(BatchInitUser.java:81)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:662)

"pool-1-thread-1" prio=10 tid=0x00007f956c0c4800 nid=0x1a9a runnable [0x00007f9526dad000]

java.lang.Thread.State: RUNNABLE

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:129)

at oracle.net.ns.Packet.receive(Unknown Source)

at oracle.net.ns.DataPacket.receive(Unknown Source)

at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)

at oracle.net.ns.NetInputStream.read(Unknown Source)

at oracle.net.ns.NetInputStream.read(Unknown Source)

at oracle.net.ns.NetInputStream.read(Unknown Source)

at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:979)

at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:951)

at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:100)

at oracle.jdbc.driver.T4CConnection.do_rollback(T4CConnection.java:474)

- locked <0x00007f9552188c00> (a oracle.jdbc.driver.T4CConnection)

at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1034)

- locked <0x00007f9552188c00> (a oracle.jdbc.driver.T4CConnection)

at com.mchange.v2.c3p0.impl.C3P0ImplUtils.resetTxnState(C3P0ImplUtils.java:275)

at com.mchange.v2.c3p0.impl.NewPooledConnection.reset(NewPooledConnection.java:388)

at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:362)

- locked <0x00007f9552188b70> (a com.mchange.v2.c3p0.impl.NewPooledConnection)

at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:1246)

- locked <0x00007f9564a6cbd8> (a com.mchange.v2.c3p0.impl.NewProxyConnection)

at org.hibernate.connection.C3P0ConnectionProvider.closeConnection(C3P0ConnectionProvider.java:70)

at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:449)

at org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:404)

at org.hibernate.jdbc.ConnectionManager.afterTransaction(ConnectionManager.java:291)

at org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:221)

at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:119)

at com.hc360.mmt.db.dao.util.MmtSessionFactory.commit(MmtSessionFactory.java:164)

at com.hc360.storm.dao.BaseDao.commit(BaseDao.java:1774)

at com.hc360.storm.dao.BaseDao.update(BaseDao.java:418)

at com.hc360.storm.dao.BaseDao.update(BaseDao.java:372)

at com.hc360.storm.dao.CompassProdDao.resetFreeBusinComplete(CompassProdDao.java:100)

at com.hc360.storm.service.CompassManage.resetBusinCompass(CompassManage.java:621)

at com.hc360.storm.service.CompassManage.saveBusinInfo(CompassManage.java:456)

at com.hc360.storm.service.CompassManage.initBusinScore(CompassManage.java:215)

at com.hc360.storm.service.CompassManage.initUserBusinScore(CompassManage.java:270)

at sun.reflect.GeneratedMethodAccessor341.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at com.hc360.storm.service.BusinessInvocationHandler.invoke(BusinessInvocationHandler.java:42)

at $Proxy1.initUserBusinScore(Unknown Source)

at com.hc360.storm.newinit.BatchInitUser.initOneUser(BatchInitUser.java:59)

at com.hc360.storm.newinit.InitUserTask.run(BatchInitUser.java:91)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:662)

原文:http://zlfwmm.blog.51cto.com/5892198/1616388

linux监控线程运行状态,linux查看线程状态--jstack相关推荐

  1. Linux系统使用ss命令查看端口状态

    Linux系统使用ss命令查看端口状态 Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 ...

  2. linux下查看mysql线程_linux-如何查看线程在哪个CPU内核中运行?

    linux-如何查看线程在哪个CPU内核中运行? 在Linux中,假设线程的pid是[pid],则从目录/ proc / [pid]中我们可以获得许多有用的信息. 例如,这些proc文件/ proc ...

  3. Linux应用层操作GPIO,查看GPIO状态

    1.操作GPIO system("echo 421 >/sys/class/gpio/export"); system("echo out >/sys/cla ...

  4. linux 监控命令iostat,Linux下 IO实时监控iostat命令详解

    Linux系统中的iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.同v ...

  5. java 查看线程死锁_java 查看线程死锁

    那我们怎么确定一定是死锁呢?有两种方法. 1>使用JDK给我们的的工具JConsole,可以通过打开cmd然后输入jconsole打开. 1)连接到需要查看的进程. 2)打开线程选项卡,然后点击 ...

  6. linux 监控命令iostat,Linux性能监控分析命令(三)—iostat命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof 命令介绍: i ...

  7. linux监控服务报警,linux服务器监控手机报警

    SA对于服务器的监控是很必要的,但是如果管理的服务器很多,也不可能24小时在线监控. 本文的主要内容就是实现,服务器如果出现异常,会通过短信方式,直接把服务器当前状况发送到管理员手机,SA可以第一时间 ...

  8. linux 监控网线拔掉,linux应用层监控网线插拔状态的实现.doc

    linux应用层监控网线插拔状态的实现 HYPERLINK "/sunzl1987/archive/2012/05/24/2516635.html"linux应用层监控网线插拔状态 ...

  9. linux监控进程资源,linux系统资源监控命令

    查看系统发行版 root@cf0c6032ba2f:/# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Des ...

  10. linux 监控进程重启,linux进程监控与自动重启的简单实现方法

    linux进程监控与自动重启的简单实现方法 目的: linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理: 由定时任务crontab调用 ...

最新文章

  1. android systemtrace 报错
  2. 【005】◀▶ C#学习笔记(四)(集合)
  3. 全面理解java异常机制
  4. oracle的asmcmd获取归档日志,分析oracle的联机日志和归档日志
  5. python3迭代器是什么,python3 迭代器
  6. win7删除微软拼音输入法
  7. vue 实现横向时间轴
  8. 未能加载文件或程序集mysql.web.v20__关于MySQL Server影响ASP.NET网站使用的问题:未能加载文件或程序集MySql.Web.v20...
  9. 基于IP子网将加域的电脑移动到不同的OU
  10. 正在发生的景象--从大众消费到圈层经济
  11. Unity3D(七)声音
  12. 简明python教程gitbook_简明Python教程 Byte of Python
  13. SRC漏洞提交平台和应急响应中心
  14. 整理关于Java进行word文档的数据动态数据填充
  15. MR21修改物料标准价
  16. 三次握手的过程、四次挥手、为什么要进行第三次握手、为什么要进行四次挥手
  17. Cve-2016-7434一把梭
  18. Linux学习路线及网络编程经典书籍
  19. mysql 数据文件_mysql的数据文件
  20. iphone一键转移_iPhone 12换机首选,QQ同步助手一键智能备份迁移

热门文章

  1. gethub连接的提示
  2. 拼多多店铺什么时候推广好?
  3. yilia 的html模板,Hexo搭建个人博客:yilia主题配置(七) - 自定义Subnav图标
  4. USYD悉尼大学INFO1110 详细作业解析Week4 revision(未更新完)
  5. 初见NVelocity模板引擎
  6. 5800p计算机公式,卡西欧fx-5800p计算器内置公式及公式自定义在隧道测量中的应用...
  7. 解决AndroidStudio中使用.9图片不生效的问题
  8. matlab patch 六面体,[MATLAB数学相关] 求正六面体的细分格式
  9. dede标签云(TAG)随机颜色及大小的实现方法
  10. 数字IC面试高频考点之跨时钟域信号处理