pstreeおよびhtopプログラムは、一意のPIDSを持つスレッドを表示します。どうやってこれができますか?

pstreeおよびhtopプログラムは、一意のPIDSを持つスレッドを表示します。どうやってこれができますか?

pstree -p 31872 プログラムを実行し、次の出力が印刷されました。

 ruby(31872)─┬─{ruby}(31906)         
             └─{ruby}(32372)

pstreeのマニュアルページには次のように記載されています。

プロセスのサブスレッドは、中かっこ内に示されているプロセス名を持つ親プロセスの下にあります。

       icecast2---13*[{icecast2}]

(上記の表示は圧縮を無効にする-pオプションがないため異なります。)

-p なしで pstree 31872 を実行すると、次のようになります。

ruby───2*[{ruby}] 

次のコマンドを使用してPIDSを観察しようとするとメモ、検索結果がありません。ただし、pidは/ procに存在します。

私の質問は、スレッドのPIDがなぜ異なるのですか?私は彼らがプロセス(31872)と同じであることを望みます。 htopを実行しても同じ動作が観察されます。

ベストアンサー1

間違いは、この数字は実際にはTIDS(スレッドID)ですが、PIDSと仮定することです。 Linux 関数 gettid(2) を参照してください。多くの追加(そして興味深い)詳細については、clone(2)を読んでください。

おすすめ記事