• 查看线程


    通过命令查看CPU上下文切换情况
    linux系统可以通过命令统计CPU上下文切换数据
    #可以看到整个操作系统每1秒CPU上下文切换的统计
     
    其中cs列就是CPU上下文切换的统计。当然,CPU上下文切换不等价于线程切换,很多操作会造成CPU上下文切换:
    • 线程、进程切换
    • 系统调用
    • 中断
    查看某一个线程\进程的上下文切换
    • 使用pidstat命令
    常用的参数:
    -u 默认参数,显示各个进程的 CPU 统计信息
    -r 显示各个进程的内存使用情况
    -d 显示各个进程的 IO 使用
    -w 显示各个进程的上下文切换
    -p PID 指定 PID
    # 显示进程5598每一秒的切换情况
     
    其中cswch表示主动切换,nvcswch表示被动切换。从统计数据中看到,该进程每秒主动切换次数达到将近500次,因此代码中存在大量的 睡眠\唤醒 操作。
     
    • 从进程的状态信息中查看
     
    通过命令 cat /proc/5598/status 查看进程的状态信息
    voluntary_ctxt_switches: 40469351
    nonvoluntary_ctxt_switches: 2268
    这2项就是该进程从启动到当前总的上下文切换情况。
     
     
     
    查看进程线程的方法
    windows
    • 任务管理器可以查看进程和线程数,也可以用来杀死进程
    • tasklist 查看进程
    • taskkill 杀死进程
    linux
    • ps -fe 查看所有进程
    • ps -fT -p 查看某个进程(PID)的所有线程
    • kill 杀死进程
    • top 按大写 H 切换是否显示线程
    • top -H -p 查看某个进程(PID)的所有线程
    Java
    • jps 命令查看所有 Java 进程
    • jstack 查看某个 Java 进程(PID)的所有线程状态
    • jconsole 来查看某个 Java 进程中线程的运行情况(图形界面)
     
    Linux系统中线程实现方式
    • LinuxThreads linux/glibc包在2.3.2之前只实现了LinuxThreads
    • NPTL(Native POSIX Thread Library)
    可以通过以下命令查看系统是使用哪种线程实现
     
  • 相关阅读:
    UDP and netstat
    UDP learn by Python3
    UDP headers and checksum
    routetrace
    IPv4 headers
    Commands for IP
    IP checksum
    POJ 3667 Hotel 线段树处理区间信息
    【枚举】Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) Div2C题
    二分图最大匹配模板 HDU1083
  • 原文地址:https://www.cnblogs.com/xiatc/p/15577809.html
Copyright © 2020-2023  润新知