如何在Linux中统计一个进程的线程数

原文:http://os.51cto.com/art/201509/491728.htm

我正在运行一个程序,它在运行时会派生出多个线程。我想知道程序在运行时会有多少线程。在Linux中检查进程的线程数最简单的方法是什么?如果你想看到Linux中每个进程的线程数,有以下两种方法实现。

问题:我正在运行一个程序,它在运行时会派生出多个线程。我想知道程序在运行时会有多少线程。在 Linux 中检查进程的线程数最简单的方法是什么?

如果你想看到 Linux 中每个进程的线程数,有以下两种方法可以做到这一点。

方法一: /proc

proc 伪文件系统,它驻留在 /proc 目录,这是最简单的方法来查看任何活动进程的线程数。 /proc 目录以可读文本文件形式输出,提供现有进程和系统硬件相关的信息如 CPU、中断、内存、磁盘等等。

  1. $ cat /proc/<pid>/status

上面的命令将显示进程 <pid> 的详细信息,包括过程状态(例如, sleeping, running),父进程 PID,UID,GID,使用的文件描述符的数量,以及上下文切换的数量。输出也包括进程创建的总线程数如下所示。

  1. Threads: <N>

例如,检查 PID 20571进程的线程数:

  1. $ cat /proc/20571/status

输出表明该进程有28个线程。

或者,你可以在 /proc//task 中简单的统计子目录的数量,如下所示。

  1. $ ls /proc/<pid>/task | wc

这是因为,对于一个进程中创建的每个线程,在 /proc/<pid>/task 中会创建一个相应的目录,命名为其线程 ID。由此在 /proc/<pid>/task 中目录的总数表示在进程中线程的数目。

方法二: ps

如果你是功能强大的 ps 命令的忠实用户,这个命令也可以告诉你一个进程(用“H”选项)的线程数。下面的命令将输出进程的线程数。“h”选项需要放在前面。

  1. $ ps hH p <pid> | wc -l

【编辑推荐】

最新文章

  1. 源码阅读 etherum-transactions.py
  2. jquery对url中的中文解码
  3. 调用java rest ful 接口实例
  4. Swift语言—有趣的字符串连接、数组、字典
  5. 如何保证access_token长期有效
  6. HDU3415
  7. 黄聪:C#解析HTML DOM解析类 HtmlParser.Net 下载
  8. SparkSql官方文档中文翻译(java版本)
  9. iOS 基础 第三天(0808)
  10. iOS开发中常用的宏
  11. 【错误总结之(一)】error LNK2038: 检測到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
  12. Java正则表达式基本应用
  13. Canvas scale- 缩放
  14. 自动生成数学题型二(框架struts2)题型如((a+b)*c=d)
  15. loadrunner飞机订票系统从登陆订票退票登出的脚本实现代码调试通过
  16. 转://创建oracle索引时需要注意的7个事项
  17. vi快速查找
  18. Linux内核第四节 20135332武西垚
  19. Android Retrofit2.1.0设置编码格式GBK
  20. Distributed traceability with Spring Cloud: Sleuth and Zipkin

热门文章

  1. 图的遍历——BFS
  2. 平方十位数——第八届蓝桥杯JavaB组(国赛)第一题
  3. 动态往 datagridview 追加行、列操作
  4. windows下vscode 搭建python开发环境
  5. java學習書
  6. 「BZOJ 3209」花神的数论题
  7. java 图书馆系统 练习
  8. linux获取域名地址
  9. Atcoder Beginner Contest 121D(异或公式)
  10. kali linux之防火墙识别