Linux檢視某個程序的執行緒

2022-05-19 12:58:37 字數 1109 閱讀 3426

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

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

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

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

方法一:ps

在ps命令中,「-t」選項可以開啟執行緒檢視。下面的命令列出了由程序號為的程序建立的所有執行緒。

ps -t -p

「sid」欄表示執行緒id,而「cmd」欄則顯示了執行緒名稱。

方法二: top

top命令可以實時顯示各個執行緒情況。要在top輸出中開啟執行緒檢視,請呼叫top命令的「-h」選項,該選項會列出所有linux執行緒。在top執行時,你也可以通過按「h」鍵將執行緒檢視模式切換為開或關。

top -h

要讓top輸出某個特定程序並檢查該程序內執行的執行緒狀況:

top -h -p

方法三: htop

乙個對使用者更加友好的方式是,通過htop檢視單個程序的執行緒,它是乙個基於ncurses的互動程序檢視器。該程式允許你在樹狀檢視中監控單個獨立執行緒。

要在htop中啟用執行緒檢視,請開啟htop,然後按來進入htop的設定選單。選擇「設定」欄下面的「顯示選項」,然後開啟「樹狀檢視」和「顯示自定義執行緒名」選項。按退出設定。

現在,你就會看到下面這樣單個程序的執行緒檢視。

參考:以上內容**此篇文章)

檢視Linux下某個程序裡面執行緒數量

檢視linux下某個程序裡面執行緒數量 2011 04 08 15 41 3中方法 1.cat proc status 2.pstree p 3.top p 再按h 或者直接輸入 top bh d 3 p 檢視程序工作 strace p 開啟iptables日誌 iptables t raw i p...

linux中監視某個程序的執行緒

在linux下進行業務開發的時候,尤其是在應用第三方包的時候,首先要分析程序中的執行緒數目,檢視程序的執行緒數對於開發或者是運維都是乙個必備的技能。程序的id 也就是 pid,由於linux中線程和程序都有各自的程序描述符,本質上程序和執行緒都是 clone 產生的,對於執行緒來說只要不檢視執行緒所...

Linux 檢視程序的執行緒數

三種方法 1。使用top命令,具體用法是 top h 加上這個選項,top的每一行就不是顯示乙個程序,而是乙個執行緒。2。使用ps命令,具體用法是 ps xh grep pid c 這樣可以檢視所有存在的執行緒,也可以使用grep作進一步的過濾。3。使用ps命令,具體用法是 ps mq pid 這樣...