Linux檢視某個程式的執行緒的3種方法
問題: 我的程式在其內部建立並執行了多個執行緒,我怎樣才能在該程式建立執行緒後監控其中單個執行緒?我想要看到帶有它們名稱的單個執行緒詳細情況(如,CPU/記憶體使用率)。
執行緒是現代作業系統上進行並行執行的一個流行的程式設計方面的抽象概念。當一個程式內有多個執行緒被叉分出用以執行多個流時,這些執行緒就會在它們之間共享特定的資源(如,記憶體地址空間、開啟的檔案),以使叉分開銷最小化,並避免大量高成本的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>退出設定。
現在,你就會看到下面這樣單個程式的執行緒檢視。
相關文章
- Java併發(三)----建立執行緒的三種方式及檢視程式執行緒Java執行緒
- linux 實時檢視一個 python 程式有幾個執行緒LinuxPython執行緒
- Linux 中實時檢視日誌的3種方法Linux
- linux檢視是否開啟超執行緒Linux執行緒
- 建立執行緒的4種方法 and 執行緒的生命週期執行緒
- 執行緒、開啟執行緒的兩種方式、執行緒下的Join方法、守護執行緒執行緒
- Linux檢視程式PID的方法?Linux
- Linux:檢查當前執行級別的五種方法Linux
- 深入分析3種執行緒池執行任務的邏輯方法執行緒
- 檢視SQL執行計劃的幾種常用方法YQSQL
- 如何在Linux中檢視所有正在執行的程式Linux
- 【 Thread】建立執行緒的2種方法thread執行緒
- VC啟動一個新執行緒的三種方法執行緒
- 多執行緒執行任務時,某個執行緒拋異常,如何讓程式立即退出執行緒
- java 多執行緒之使用 interrupt 停止執行緒的幾種方法Java執行緒
- Linux如何檢視系統和程式的執行狀態?Linux
- linux下檢視mysql版本的四種方法LinuxMySql
- Linux檢視檔案大小的幾種方法Linux
- 終止java執行緒的2種方法Java執行緒
- Java建立多執行緒的一種方法Java執行緒
- Linux程式與執行緒的區別Linux執行緒
- Linux執行緒與程式的區別Linux執行緒
- java的執行緒、建立執行緒的 3 種方式、靜態代理模式、Lambda表示式簡化執行緒Java執行緒模式
- Linux禁止某個IP地址訪問的幾種方法Linux
- 檢視正在執行的 Linux 系統版本Linux
- Linux中程式與程式、執行緒的區別!Linux執行緒
- Linux 檢視計算機各個硬體的效能: sysbench (多執行緒效能測試工具)Linux計算機執行緒
- Map實現執行緒安全的3種方式執行緒
- 檢視sqlserver的某程式的sql文字SQLServer
- 多執行緒(五)---執行緒的Yield方法執行緒
- JVM程式用一個主執行緒來執行main()方法JVM執行緒AI
- Linux 技巧:讓程式在後臺可靠執行的幾種方法Linux
- 17 種檢視 Linux 實體記憶體的方法Linux記憶體
- 使用命令檢視Linux核心版本的三種方法Linux
- Linux系統下檢視mysql版本的四種方法LinuxMySql
- Python 潮流週刊#28:兩種執行緒池、四種最佳化程式的方法Python執行緒
- 在netty3.x中存在兩種執行緒:boss執行緒和worker執行緒。Netty執行緒
- Linux 檢視程式啟動時間、執行時間Linux
- 根據openGauss/MogDB的lwtid檢視執行緒堆疊執行緒