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一行显示一个线程。
可以使用top命令查看一个进程的各个线程分别run在哪个processor上
在默认配置下不显示线程信息,需要进入Top后按shift+H,打开线程显示。
另外,如果没有P列,还需要按“f”,按“j”,添加,这一列显示的数字就是这个线程上次run的processor id。
如果同一个进程名字有多个出现,说明进程有多个线程,几个线程就是线程数量了。
threading模块有active_count()方法,它是获取当前激活的线程数量。用法很简单
import threading
threadingactive_count()
root@localhost:~# pstree --help
pstree: unrecognized option '--help'
Usage: pstree [ -a ] [ -c ] [ -h | -H PID ] [ -l ] [ -n ] [ -p ] [ -g ] [ -u ]
[ -A | -G | -U ] [ PID | USER ]
pstree -V
Display a tree of processes
-a, --arguments show command line arguments
-A, --ascii use ASCII line drawing characters
-c, --compact don't compact identical subtrees
-h, --highlight-all highlight current process and its ancestors
-H PID,
--highlight-pid=PID highlight this process and its ancestors
-g, --show-pgids show process group ids; implies -c
-G, --vt100 use VT100 line drawing characters
-l, --long don't truncate long lines
-n, --numeric-sort sort output by PID
-p, --show-pids show PIDs; implies -c
-s, --show-parents show parents of the selected process
-u, --uid-changes show uid transitions
-U, --unicode use UTF-8 (Unicode) line drawing characters
-V, --version display version information
PID start at this PID; default is 1 (init)
USER show only trees rooted at processes of this user
-p, --show-pids show PIDs; implies -c
-p 接进程pid,就可以显示子进程
root@localhost:~# pstree -p 1464
php5-fpm(1464)─┬─php5-fpm(1467)
├─php5-fpm(1468)
├─php5-fpm(1469)
├─php5-fpm(1470)
├─php5-fpm(1471)
├─php5-fpm(1472)
├─php5-fpm(1473)
├─php5-fpm(1474)
├─php5-fpm(1475)
├─php5-fpm(1476)
├─php5-fpm(4377)
├─php5-fpm(7805)
├─php5-fpm(8290)
└─php5-fpm(22279)
GetThreadId 根据线程句柄得到线程ID。
GetWindowThreadProcessId ,根据窗口句柄得到此窗口所在线程的ID(也同时得到进程的ID)
OpenThread,能根据ID得到线程的句柄。
理论上来说,如果你全用threadgroup来跑线程的话,有个叫enumerate的方法可以得到该threadgroup下所有active的(也就是你说的在工作的)线程以及子线程,但程序里面不一定是把线程放threadgroup里面的,有可能有人自己new一个出来run或者别的,所以不能完全依靠这个办法。我目前想到的办法,貌似得弄个全局的counter,开个守护线程,让这个线程去数监控所有线程的状态,依照线程是否Active去加减这个counter。
还有个懒点的,你看windows的taskmanager(假设你在win平台上的话),里面有一个column叫做thread count的,我没试过到底准不准,不过这个最省事了,右键点出来一看就知道了。
在LINUX上可以使用kill -3 pid > threadinfo来取得当前JVM线程的信息;
jstack 这个是用来查看jvm当前的thread dump的。可以看到当前Jvm里面的线程状况。
这个对于查找blocked线程比较有意义;
三种方法:1。 使用top命令,具体用法是 top -H 加上这个选项,top的每一行就不是显示一个进程,而是一个线程。 2。 使用ps命令,具体用法是 ps -xH 这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。
以上就是关于linux 如何看某个进程有多少线程全部的内容,包括:linux 如何看某个进程有多少线程、查看进程运行在哪个CORE上以及进程下线程数量、python 查看进程 多少线程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)