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

编译自:http://ask.xmodulo.com/number-of-threads-process-linux.html作者: Dan Nanni
原创:LCTT https://linux.cn/article-6240-1.html译者: strugglingyouth
本文地址:https://linux.cn/article-6240-1.html

2015-9-17 10:29    收藏: 5

问题: 我正在运行一个程序,它在运行时会派生出多个线程。我想知道程序在运行时会有多少线程。在 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

如果你想监视一个进程的不同线程消耗的硬件资源(CPU & memory),请参阅此教程

时间: 2024-08-25 22:58:51

如何在 Linux 中统计一个进程的线程数的相关文章

Linux中四种进程或线程同步互斥控制方法

原文地址:http://blog.itpub.net/10697500/viewspace-612045/ 一.Linux中 四种进程或线程同步互斥的控制方法: 1.临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问. 2.互斥量:为协调共同对一个共享资源的单独访问而设计的. 3.信号量:为控制一个具有有限数量用户资源而设计. 4.事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始. 二.临界区(Critical Section) 保证在某一时刻只有一个线程

如何在linux中执行一个脚本

---恢复内容开始--- 如何在LINUX中在系统启动时自动执行一个执行脚本 如果是开机马上执行的脚本,可以将脚本写到rc.local中: 如果是用户登录后自动执行脚本,可以将脚本写到相应的用户目录下"-/.bash_profile",若脚本"-/.bash_profile"不存在,可以直接拷贝"/etc/profile"命名为"-/.bash_profile": 如果是要任一用户登录后自动执行脚本,可以将脚本写到"

如何在 Linux 中安装微软的 .NET Core SDK | Linux 中国

本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序.-- Sk致谢译自 | ostechnix.com 作者 | Sk译者 | LCTT / runningwater .NET Core 是微软提供的免费.跨平台和开源的开发框架,可以构建桌面应用程序.移动端应用程序.网络应用程序.物联网应用程序和游戏应用程序等.如果你是 Windows 平台下的 dotnet 开发人员的话,使用 .NET core 可以很轻松就设置好任何

【转】如何在 Linux 中查看可用的网络接口

原文:https://www.cnblogs.com/qianpangzi/p/10563979.html 查看ubuntu系统当前的可用的网络接口.方法如下 ----------------------------------------------------------------------------------------- 在我们安装完一个 Linux 系统后最为常见的任务便是网络配置了.当然,你可以在安装系统时进行网络接口的配置.但是,对于某些人来说,他们更偏爱在安装完系统后再进

如何在Linux中显示和设置主机名

原文链接 随着连接到网络的计算机数量越来越多,每一台计算机都需要有一个属性来区别于其它计算机.和现实世界中的人一样,计算机也有一个叫做hostname(主机名)的属性. 什么是hostname 从它的操作手册来看,hostname是用来显示系统的DNS名字以及为了显示和设置它的主机名或者NIS域名名字.所以hostname依赖于DNS(Domain Name System域名系统)或者NIS(Network Information System网络信息系统). 怎么显示hostname host

如何在Linux中使用sFTP上传或下载文件与文件夹

如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作.在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件). 作者:Aaron Kili来源:Linux中国|2017-03-09 14:42 移动端 收藏 分享 51CTO诚邀您9月23号和秒拍/国美/美团元专家一起聊智能CDN的优化之路

linux中的僵尸进程

1.什么是僵尸进程? 僵尸进程是指子进程比父进程先结束,而父进程却没有回收子进程,释放子进程占用的资源.僵尸进程也一直在进程表中占着一个slot,但进程表容量有限,defunct进程不仅占用系统资源,还影响系统性能,如果其数目较多还可能导致系统瘫痪.这里有个形象的解释:进程在退出后就立刻变成了僵尸,然后等父进程收尸:如果这时它的父进程已经死了,也就是说这个进程是个孤儿,它的父进程临死前"托孤"的init进程,也就是它的养父,会帮它收尸.如果这里它的父进程还没死,就要看这个父进程在做什么

Linux中的轻量级进程

在Linux中,轻量级进程可以是进程,也可以是线程.我们所说的线程,在Linux中,其实是轻量级进程之间共享代码段,文件描述符,信号处理,全局变量时: 如果不共享,就是我们所说的进程. 进程是资源管理的最小单位,线程是程序执行的最小单位.在操作系统设计上,从进程演化出线程,最主要的目的就是减小多进程上下文切换开销. 最初的进程定义都包含程序.资源及其执行三部分,其中程序通常指代码,资源在操作系统层面上通常包括内存资源.IO资源.信号处理等部分, 而程序的执行通常理解为执行上下文,包括对CPU的占

linux中后台挂载进程和卸载进程

使用ssh连接linux,就会打开一个进程,当关闭ssh时,该进程就会关闭,导致不能在Linux后台继续允许该进程,比较麻烦. 因此需要使用linux的后台进程的挂载和卸载: (1)后台进程的挂载:如果想挂载sh test.sh进程,则需要使用:nohup sh test.sh &即可.此时就会在后台自动运行该进程. (2)后台进程的卸载:先查看后台进程:ps -ef,可以查看该linux中的所有进程,另外 ps -ef|grep 过滤条件,既可以添加过滤条件. 啥死进程:kill -9 进程号