/proc/pid/task/, /proc/tid/, /proc/thread-self/ - thread information
/proc/pid/task/ (since Linux 2.6.0)This is a directory that contains one subdirectory for each thread in
the process. The name of each subdirectory is the numerical thread ID
(tid) of the thread (see gettid(2)).
Within each of these subdirectories, there is a set of files with the
same names and contents as under the /proc/pid directories. For
attributes that are shared by all threads, the contents for each of the
files under the task/tid subdirectories will be the same as in
the corresponding file in the parent /proc/pid directory (e.g.,
in a multithreaded process, all of the task/tid/cwd
files will have the same value as the /proc/pid/cwd
file in the parent directory, since all of the threads in a process
share a working directory). For attributes that are distinct for each
thread, the corresponding files under task/tid may have
different values (e.g., various fields in each of the
task/tid/status files may be different for each
thread), or they might not exist in /proc/pid at all.
In a multithreaded process, the contents of the
/proc/pid/task directory are not available if the main
thread has already terminated (typically by calling
pthread_exit(3)).
See also:
/proc/tid/There is a numerical subdirectory for each running thread that is not
a thread group leader (i.e., a thread whose thread ID is not the same as
its process ID); the subdirectory is named by the thread ID. Each one of
these subdirectories contains files and subdirectories exposing
information about the thread with the thread ID tid. The
contents of these directories are the same as the corresponding
/proc/pid/task/tid directories.
The /proc/tid subdirectories are not visible when
iterating through /proc with getdents(2) (and
thus are not visible when one uses ls(1) to
view the contents of /proc). However, the pathnames of these
directories are visible to (i.e., usable as arguments in) system calls
that operate on pathnames.
/proc/thread-self/ (since Linux 3.17)This directory refers to the thread accessing the /proc
filesystem, and is identical to the /proc/self/task/tid
directory named by the process thread ID (tid) of the same
thread.
proc(5)