鉴于linux下线程的广泛使用 我们怎么查看某个进程拥有的线程id了

现在很多服务的设计 主进程->子进程->线程(比如mysql,varnish)

主进程负责侦听网络上的连接 并把连接发送给子进程 子进程派生线程去处理这些线程

mysql(父进程460,子进程863)

            ?           - S           : /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/storage/mysql/backup --pid-file=/storag
? - Sl : \_ /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/storage/mysql/backup

1、ps

  -T Show threads, possibly with SPID column

[root@pdd1 ~]# ps -T -p
PID SPID TTY TIME CMD
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld
? :: mysqld

我们可以看到子进程863派生出的线程  第一行spid 863是主线程(我们知道主线程就是该进程本身)

2、top

-H : Threads toggle
Starts top with the last remembered ’H’ state reversed. When this toggle is On, all individual threads will be dis-
played. Otherwise, top displays a summation of all threads in a process.

top -H -p 863

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
mysql 741m 56m S 0.3 5.7 :49.11 mysqld
mysql 741m 56m S 0.3 5.7 :22.76 mysqld
mysql 741m 56m S 0.0 5.7 :00.06 mysqld
mysql 741m 56m S 0.0 5.7 :51.65 mysqld
mysql 741m 56m S 0.0 5.7 :14.77 mysqld
mysql 741m 56m S 0.0 5.7 :58.15 mysqld
mysql 741m 56m S 0.0 5.7 :50.26 mysqld
mysql 741m 56m S 0.0 5.7 :49.88 mysqld
mysql 741m 56m S 0.0 5.7 :52.48 mysqld
mysql 741m 56m S 0.0 5.7 :50.83 mysqld
mysql 741m 56m S 0.0 5.7 :51.90 mysqld
mysql 741m 56m S 0.0 5.7 :48.10 mysqld
mysql 741m 56m S 0.0 5.7 :55.01 mysqld
mysql 741m 56m S 0.0 5.7 :19.84 mysqld
mysql 741m 56m S 0.0 5.7 :00.00 mysqld
mysql 741m 56m S 0.0 5.7 :00.00 mysqld
mysql 741m 56m S 0.0 5.7 :00.58 mysqld
mysql 741m 56m S 0.0 5.7 :00.00 mysqld
mysql 741m 56m S 0.0 5.7 :00.06 mysqld

3、pstree

[root@pdd1 ~]# pstree -Aup -h
mysqld_safe()---mysqld(,mysql)-+-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
|-{mysqld}()
`-{mysqld}()

linux查看某个进程的线程id(spid)的更多相关文章

  1. Linux查看某个进程的线程

    线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念.当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间.打开的文件),以使叉分开销最小化 ...

  2. Linux查看某进程的线程

    首先得知道你要查的进程的PID: 比如我要查看看我unimrcpserver的线程 第二种方法:top top命令可以实时显示各线程情况.就相当于windows的资源管理器.

  3. Linux有问必答:Linux上如何查看某个进程的线程

    原创:LCTT https://linux.cn/article-5633-1.html 译者: GOLinux本文地址:https://linux.cn/article-5633-1.html201 ...

  4. 在Linux上显示正在运行的进程的线程ID

    在Linux上显示正在运行的进程的线程ID 在上Linux," ps -T"可以显示正在运行的进程的线程信息: # ps -T 2739 PID SPID TTY STAT TIM ...

  5. Linux 平台如何查看某个进程的线程数?

    Linux 平台如何查看某个进程的线程数?   三种方法:1. 使用top命令,具体用法是 top -H 加上这个选项,top的每一行就不是显示一个进程,而是一个线程. 2. 使用ps命令,具体用法是 ...

  6. linux 线程查看 和 Jvm栈线程ID对应

    一.proc查看进程和线程 该方法是个人最为推荐,也最喜欢的一种方法.进程文件下,有几种方式可以获取目前进程开启的进程数. 查看status文件: # cat /proc//status Name: ...

  7. Linux下的进程与线程(二)—— 信号

    Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得 ...

  8. linux查看某个进程CPU消耗较高的具体线程或程序的方法

      目前我们的监控,可以发现消耗较高CPU的进程(阀值为3个CPU),通过监控我们可以找到消耗较高CPU的进程号: 通过进程号pid,我们在linux上可以通过top –H –p <pid> ...

  9. Linux 下查看某进程的线程数

    1.查看文件 /proc/${pid}/status2.pstree -p ${pid}3.输入 top -bH -d 3 -p ${pid}top -H手册中说:-H : Threads toggl ...

随机推荐

  1. NOI2018准备Day4

    上午9点20至11点50就做出了一道题,一个很基础的二分挡住了,原因是浮点数精度问题的处理,现在还搞不懂,为什么用double存进去两位小数过不了,用double存进去两位小数再*100再/100就能 ...

  2. 细细品味Storm_Storm简介及安装

    Storm是由专业数据分析公司BackType开发的一个分布式实时数据处理软件,可以简单.高效.可靠地处理大量的数据流.Twitter在2011年7月收购该公司,并于2011年9月底正式将Storm项 ...

  3. dirtycow漏洞

    dirtycow漏洞,原理还没看懂,找了几个PoC实验了一下. dirtyc0w.c我在CentOS和Kali上都失败了 pokemon.c在CentOS上成功修改了只读文件,不过修改的不是很顺利,结 ...

  4. 防止 JavaScript 自动插入分号

    JavaScript语言有一个机制:在解析时,能够在一句话后面自动插入一个分号,用来修改语句末尾遗漏的分号分隔符. 然而,由于这个自动插入的分号与JavaScript语言的另一个机制发生了冲突,即所有 ...

  5. 什么是web框架?

    英文原文:http://jeffknupp.com/blog/2014/03/03/what-is-a-web-framework/ 在原文基础上加上了自己在翻译过程中,查看的资料和自己的一些理解,同 ...

  6. 富文本KidnEditor在MVC中的应用

    最近看到很多网站后台都用到了富文本,包括自己所在的公司也是.公司用的KindEditor,所以就讲讲KindEditor.之前我也没学过,所以网上搜了一篇博文,直接转载如下(PS:完全以学习为目的哦~ ...

  7. Bete冲刺第一阶段

    Bete冲刺第一阶段 今日工作: github团队协作流程 web:调整dao层设计,增加新的dao组件 客户端:之前遗留的界面跳转的BUG 目前所遇问题: 第一,COCOAPODS的安装上还是有点问 ...

  8. Android 之px于dp在Java代码中的转换

    现在由于用到了,使用代码进行动态布局,所以需要进行px于dp之间的转换. 现将其封装为方法,以便于调用. public int DpToPx(Context context,float dp){ fl ...

  9. springMVC+mybatis 增删该操作后判断影响行数一直返回-2147482646

    MyBatis发现更新和插入返回值一直为"-2147482646"的错误是由defaultExecutorType设置引起的,如果设置为BATCH,更新返回值就会丢失.mybati ...

  10. java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 错误

    你的ArrayList 是一个没有值的对象(不是null),也就是里面什么对象也没有存(即:arrayList.size()==0).但是,你有取它下标为0值的操作.所以,数组越界了!!比如array ...