linux查看線程執行情況

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

 

線程是現代操作系統上進行並行執行的一個流行的編程方面的抽象概念。當一個程序內有多個線程被叉分出用以執行多個流時,這些線程就會在它們之間共享特定的資源(如,內存地址空間、打開的文件),以使叉分開銷最小化,並避免大量高成本的IPC(進程間通信)通道。這些功能讓線程在併發執行時成爲一個高效的機制

Linux中,程序中創建的線程(也稱爲輕量級進程,LWP)會具有和程序的PID相同的線程組ID”。然後,各個線程會獲得其自身的線程IDTID)。對於Linux內核調度器而言,線程不過是恰好共享特定資源的標準的進程而已。經典的命令行工具,如pstop,都可以用來顯示線程級別的信息,只是默認情況下它們顯示進程級別的信息

這裏提供了Linux上顯示某個進程的線程的幾種方式

方法一:PS

ps命令中,“-T”選項可以開啓線程查看。下面的命令列出了由進程號爲<pid>的進程創建的所有線程

1.   $ ps -T -p <pid>


“SID”欄表示線程ID,而“CMD”欄則顯示了線程名稱

方法二: Top

top命令可以實時顯示各個線程情況。要在top輸出中開啓線程查看,請調用top命令的“-H”選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按“H”鍵將線程查看模式切換爲開或關

1.   $ top -H


要讓top輸出某個特定進程<pid>並檢查該進程內運行的線程狀況

1.   $ top -H -p <pid>

 

方法三: Htop

一個對用戶更加友好的方式是,通過htop查看單個進程的線程,它是一個基於ncurses的交互進程查看器。該程序允許你在樹狀視圖中監控單個獨立線程

要在htop中啓用線程查看,請開啓htop,然後按<F2>來進入htop的設置菜單。選擇設置欄下面的顯示選項,然後開啓樹狀視圖顯示自定義線程名選項。按<F10>退出設置

 

現在,你就會看到下面這樣單個進程的線程視圖。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章