ps出力では、tidとtgidは常にpidと同じですか?

ps出力では、tidとtgidは常にpidと同じですか?

psのマンページから

tid         TID          the unique number representing a dispatchable
                         entity (alias lwp, spid).  This value may also
                         appear as: a process ID (pid); a process group
                         ID (pgrp); a session ID for the session leader
                         (sid); a thread group ID for the thread group
                         leader (tgid); and a tty process group ID for
                         the process group leader (tpgid).

   tgid        TGID      a number representing the thread group to which
                         a task belongs (alias pid).  It is the process
                         ID of the thread group leader.

Ubuntuでは、ps -o pid,tid,tgid,cmdtidとtgidは常にユーザープロセスとカーネルスレッド(私が実行している)のpidと同じようです。これはLinuxでも本当ですか?なぜ?

System VやBSDなどの他のUnixでもこれは本当ですか?

ありがとうございます。

答え1

psスレッド情報を表示する作業が必要です。それ以外の場合は、プロセスのみが一覧表示されます。

ps -eL -o pid,tid,comm | awk '$1 != $2'

各プロセスのメインスレッドを除くすべてのスレッドを表示します。つまりPID と TID が異なるプロセステーブルのエントリです。重要なオプションは、-Lこのオプションがない場合は、ps同じpidとtidを持つ項目のみが一覧表示されることです。

FreeBSDでは同等のオプションがあります-H。他のBSDやSystem Vでは確認していません。

関連情報