1. 程式人生 > >監控某個程序的執行緒狀態

監控某個程序的執行緒狀態

問題: 我的程式在其內部建立並執行了多個執行緒,我怎樣才能在該程式建立執行緒後監控其中單個執行緒?我想要看到帶有它們名稱的單個執行緒詳細情況(如,CPU/記憶體使用率)。

執行緒是現代作業系統上進行並行執行的一個流行的程式設計方面的抽象概念。當一個程式內有多個執行緒被叉分出用以執行多個流時,這些執行緒就會在它們之間共享 特定的資源(如,記憶體地址空間、開啟的檔案),以使叉分開銷最小化,並避免大量高成本的IPC(程序間通訊)通道。這些功能讓執行緒在併發執行時成為一個高 效的機制。

在Linux中,程式中建立的執行緒(也稱為輕量級程序,LWP)會具有和程式的PID相同的“執行緒組ID”。然後,各個執行緒會獲得其自身的執行緒 ID(TID)。對於Linux核心排程器而言,執行緒不過是恰好共享特定資源的標準的程序而已。經典的命令列工具,如ps或top,都可以用來顯示執行緒級 別的資訊,只是預設情況下它們顯示程序級別的資訊。

這裡提供了在Linux上顯示某個程序的執行緒的幾種方式。

方法一:PS

在ps命令中,“-T”選項可以開啟執行緒檢視。下面的命令列出了由程序號為<pid>的程序建立的所有執行緒。

1.$ ps -T -p <pid>