有些時候須要確實進程內部當前運行着多少線程,那麼如下幾個方法值得一用。java
根據進程號進行查詢兩種方式:centos
$ pstree -p 68919 java(68919)─┬─{java}(68920) ├─{java}(68921) ├─{java}(68922) ├─{java}(68923) ├─{java}(68924) ├─{java}(68925) ├─{java}(68926) ├─{java}(68927) ├─{java}(68928) ├─{java}(68929) ├─{java}(68930) ├─{java}(68935) ├─{java}(68936) ├─{java}(68937) ├─{java}(68938) ├─{java}(68939) ├─{java}(68940) ├─{java}(68941) ├─{java}(68942) ├─{java}(68943) ├─{java}(68944) ├─{java}(68945) ├─{java}(68946) ├─{java}(68947) ├─{java}(68948) ├─{java}(68949) ├─{java}(68950) ├─{java}(68951) └─{java}(68952)
2.根據進程名字進行查詢:bash
# pstree -p `ps -e | grep server | awk '{print $1}'`線程
# pstree -p `ps -e | grep server | awk '{print $1}'` | wc -lcode
這裏利用了管道和命令替換,server
關於命令替換,就是說用``括起來的命令會優先執行,而後以其輸出做爲其餘命令的參數,進程
上述就是用 ps -e | grep server | awk '{print $1}' 的輸出(進程號),做爲 pstree -p 的參數class
管道和命令替換的區別是:awk
管道:管道符號"|"左邊命令的輸出做爲右邊命令的輸入grep
命令替換:將命令替換符"``"中命令的輸出做爲其餘命令相應位置的參數