<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    Linux有問必答:Linux上如何查看某個進程的線程

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接


    原創:LCTT https://linux.cn/article-5633-1.html 譯者: GOLinux
    本文地址:https://linux.cn/article-5633-1.html
    2015-6-15 15:44 收藏: 9
    問題: 我的程序在其內部創建并執行了多個線程,我怎樣才能在該程序創建線程后監控其中單個線程?我想要看到帶有它們名稱的單個線程詳細情況(如,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>退出設置。


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


    via: http://ask.xmodulo.com/view-threads-process-linux.html

    作者:Dan Nanni 譯者:GOLinux 校對:wxy

    本文由 LCTT 原創翻譯,Linux中國 榮譽推出

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全