线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念。当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间、打开的文件),以使叉分开销最小化,并避免大量高成本的IPC(进程间通信)通道。这些功能让线程在并发执行时成为一个高效的机制。

在Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。然后,各个线程会获得其自身的线程ID(TID)。对于Linux内核调度器而言,线程不过是恰好共享特定资源的标准的进程而已。经典的命令行工具,如ps或top,都可以用来显示线程级别的信息,只是默认情况下它们显示进程级别的信息。

这里提供了在Linux上显示某个进程的线程的几种方式。

方法一:PS

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

ps -T -p <pid>

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

方法二: Top

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

top -H

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

top -H -p <pid>

方法三: Htop

一个对用户更加友好的方式是,通过htop查看单个进程的线程,它是一个基于ncurses的交互进程查看器。该程序允许你在树状视图中监控单个独立线程。

要在htop中启用线程查看,请开启htop,然后按<F2>来进入htop的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按<F10>退出设置。

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

Linux查看某个进程的线程相关推荐

  1. linux父进程和子进程查看,linux查看父子进程

    python多进程代码 test.py #coding=utf-8 import multiprocessing import time def func(msg): print "msg: ...

  2. Linux查看哪些进程占用较多的cpu、内存和磁盘IO的方法

    linux 查看哪个进程占用CPU和内存 1.ps aux | grep mysql 用这个方法找到进程号 如下:找到mysql的进程号是1651 [root@vm254 ~]# ps aux |gr ...

  3. Linux查看端口进程

    Linux查看端口进程 lsof -i:端口号 netstat -ntulp |grep 端口号

  4. linux查看进程中的线程名,linux 怎么样查看一个进程的线程

    一.linux系统支持的最大进程数 限制1:既然系统使用pid_t表示进程号,那么最大进程数不能超过pid_t类型的最大值吧 限制2:使用命令ulimit -u查看系统中限制的最大进程数,我的机器上是 ...

  5. Linux 操作系统原理 — 进程与线程管理

    目录 文章目录 目录 前言 进程与线程 内核线程,用户线程与轻量级进程 内核线程 轻量级进程 用户线程 轻量级进程与用户线程的区别 用户线程与轻量级进程的混合模式 用户线程和内核线程的区别 线程的实现 ...

  6. linux查看某进程的连接,linux下查看指定进程的所有连接信息(转)

    定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息.通常查找某个端口的连接信息使用 ss 或者 netstat 可以轻松拿到,如果是主动与别的机器建立的连接信息则可以通过 lsof ...

  7. linux查看java进程_linux中查看java进程

    linux中查看java进程 查看进程可以使用 ps -ef|grep 'java -jar' ps -ef|grep java [root@vm-linux-x86 ~]# ps -ef|grep ...

  8. Linux进阶之进程与线程

    一.进程与线程 1.进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的 ...

  9. linux 下的进程创建线程,Linux线程 之 线程 线程组 进程 轻量级进程(LWP)

    线程是有栈的,我们知道,普通的一个进程,它的栈空间是8M,我们可以通过ulmit -a查看: stack size (kbytes, -s) 8192 线程也不例外,线程也是需要栈空间的这句话是废话, ...

最新文章

  1. 什么是最佳适应算法?
  2. 快来捡武器:Black Hat USA 将推出的8款安全工具
  3. 画函数图形的C#程序(改进版) (转)
  4. java图片滚动特效_js图片各种滚动效果
  5. .NET CORE——Console中使用依赖注入
  6. hadoop2.6.集群搭建
  7. Phycharm下载并安装
  8. Mac新手操作指南(三)
  9. 16S rRNArDNA测序分析
  10. dmp标签_一种基于DMP标签的管理平台及方法与流程
  11. hive中的distribute by、sort by、cluster by
  12. PyQt5 文件保存对话框
  13. 兰博基尼lp650-4跑车介绍
  14. 三星Android Pie软件,三星开始向欧洲Galaxy S9用户推送Android Pie稳定版更新包
  15. python 调整字体大小
  16. Spring-初识Spring框架-IOC控制反转(DI依赖注入)
  17. 知识融合中几种计算文本相似度的方法(代码)
  18. 提问的智慧 (全文)
  19. 从n个不同元素中取出m个元素排列组合
  20. windows 无法在此计算机上完成安装,重装系统后显示无法完成安装|Windows无法在此计算机安装...

热门文章

  1. Zookeeper 典型应用场景介绍
  2. 云服务商正在杀死开源商业模式
  3. 如何使用Arthas定位线上 Dubbo 线程池满异常
  4. Spring Cloud Gateway真的有那么差吗?
  5. 从头开发一个BurpSuite数据收集插件
  6. php swoole process,Swoole_process实现进程池的方法
  7. flink 三种时间机制_360深度实践:Flink 与 Storm 协议级对比
  8. 未转变者空投指令服务器,未转变者空投指令 | 手游网游页游攻略大全
  9. 半年总结(2018-10)
  10. {TypeError}argument for rectangle() given by name (‘thickness‘) and position