当前位置:首页 » 操作系统 » linux查看进程的线程

linux查看进程的线程

发布时间: 2022-04-24 12:14:29

linux 如何查看进程包含哪些线程

名称:ps
使用权限:所有使用者
使用方式:ps [options] [--help]
说明:显示瞬间行程 (process) 的动态
参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

############################################################

常用参数:

-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行

❷ linux 在linux中查看某进程中有多少个线程的方法

1、top -H
手册中说:-H : Threads toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。
2、ps xH
手册中说:H Show threads as if they were processes
这样可以查看所有存在的线程。
3、ps -mp <PID>
手册中说:m Show threads after processes
这样可以查看一个进程起的线程数。
更多详尽的解释还可以man ps,man top。

❸ 如何在Linux中查看进程的多线程

方法/步骤

问题: 我的程序在其内部创建并执行了多个线程,我怎样才能在该程序创建线程后监控其中单个线程?我想要看到带有它们名称的单个线程详细情况(如,CPU/内存使用率)。
线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念。当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享 特定的资源(如,内存地址空间、打开的文件),以使叉分开销最小化,并避免大量高成本的IPC(进程间通信)通道。这些功能让线程在并发执行时成为一个高 效的机制。
在Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。然后,各个线程会获得其自身的线程 ID(TID)。对于Linux内核调度器而言,线程不过是恰好共享特定资源的标准的进程而已。经典的命令行工具,如ps或top,都可以用来显示线程级 别的信息,只是默认情况下它们显示进程级别的信息。
这里提供了在Linux上显示某个进程的线程的几种方式。

方法一:PS
在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为<pid>的进程创建的所有线程。
1.$ ps -T -p <pid>

“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。

方法二: Top
top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。
1.$ top -H

要让top输出某个特定进程<pid>并检查该进程内运行的线程状况:
$ top -H -p <pid>

方法三: Htop
一个对用户更加友好的方式是,通过htop查看单个进程的线程,它是一个基于ncurses的交互进程查看器。该程序允许你在树状视图中监控单个独立线程。
要在htop中启用线程查看,请开启htop,然后按<F2>来进入htop的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按<F10>退出设置。

5
现在,你就会看到下面这样单个进程的线程视图。

❹ linux 怎么查看一个进程的所有线程

1。 使用top命令,具体用法是 top -H加上这个选项,top的每一行就不是显示一个进程,而是一个线程。
2。 使用ps命令,具体用法是 ps -xH
这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。
3。 使用ps命令,具体用法是 ps -mq PID
这样可以看到指定的进程产生的线程数目。
更进一步,其实一些系统监控工具,在本质上也是读取的系统产生的文件罢了。比如说进程这个事情,
看看这个目录吧,/proc/5000/ 这里面有你所有想要的。其实stat代表着当前的一些信息。
使用ps命令来查看进程的时候,进程状态分别对应的含义如下:
D 不可中断睡眠 (通常是在IO操作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
R 正在运行或可运行(在运行队列排队中)
S 可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
T 已停止的 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行
W 正在换页(2.6.内核之前有效)
X 死进程 (未开启)
Z 僵尸进程 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放BSD风格的
< 高优先级(not nice to other users)
N 低优先级(nice to other users)
L 页面锁定在内存(实时和定制的IO)
s 一个信息头
l 多线程(使用 CLONE_THREAD,像NPTL的pthreads的那样)
+ 在前台进程组

❺ Linux 平台如何查看某个进程的线程数

1、
cat
/proc/${pid}/status
2、pstree
-p
${pid}
3、top
-p
${pid}
再按h
或者直接输入
top
-bh
-d
3
-p
${pid}
top
-h
手册中说:-h
:
threads
toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。
4、ps
xh
手册中说:h
show
threads
as
if
they
were
processes
这样可以查看所有存在的线程。
5、ps
-mp
手册中说:m
show
threads
after
processes
这样可以查看一个进程起的线程数。

❻ linux下查看一个进程有多少个线程

有些时候需要确实进程内部当前运行着多少线程,那么以下几个方法值得一用。
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
的参数
管道和命令替换的区别是:
管道:管道符号"|"左边命令的输出作为右边命令的输入
命令替换:将命令替换符"``"中命令的输出作为其他命令相应位置的参数

❼ Linux系统如何查看进程的线程数

Linux系统查看某个进程的线程数可以通过ps命令来进行查询。以firefox进程为例。
1、查看firefox的进程pid,如下图所示,firefox的进程pid为3168。
2、查看firefox中的线程数和线程ID,如下图所示,
其中NLWP
列为线程数

LWP列为线程ID,可见firefox有线程数50。

❽ Linux下查看某个进程创建了多少线程

$ ps -mp <PID>
例如查看mysqld进程中的线程
$ ps aux | grep mysqld

mysql 3496 0.7 51.7 4249652 2089140 ? Sl Dec05 10:42 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/data --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/data/gk-compiler.err --pid-file=/var/lib/data/gk-compiler.pid --socket=/var/lib/mysql/mysql.sock --port=3306
从输出结果可看出mysqld的PID是3496,继续执行如下命令
$ ps -mp 3496
PID TTY TIME CMD
3496 ? 00:10:42 mysqld
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:00 -
- - 00:00:33 -
- - 00:00:00 -
- - 00:02:18 -
- - 00:01:42 -
- - 00:02:09 -
- - 00:01:48 -
- - 00:02:05 -
输出的信息中“3496 ? 00:10:42 mysqld”这一行下面的都是该进程内的线程

❾ linux如何查看进程中各个线程的资源占用情况

直接打开资源管理器,再进积栏目中就可以看到各个线程的资源占用情况

热点内容
hp存储扩容 发布:2024-11-17 23:29:16 浏览:569
在ftp中put表示什么 发布:2024-11-17 23:29:12 浏览:383
mvc多文件上传 发布:2024-11-17 23:13:56 浏览:155
玩游戏硬盘缓存32m 发布:2024-11-17 23:03:42 浏览:525
蓝光存储系统 发布:2024-11-17 23:03:41 浏览:436
地平线4提示配置低于最低怎么办 发布:2024-11-17 22:54:38 浏览:610
注册银行卡账户密码填什么 发布:2024-11-17 22:54:35 浏览:537
java压缩上传图片 发布:2024-11-17 22:26:59 浏览:627
plc编程课件 发布:2024-11-17 22:18:23 浏览:469
我的世界服务器信号一直在检测 发布:2024-11-17 22:09:52 浏览:547