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.

우분투에서는 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에서는 확인하지 않았습니다.

관련 정보