NAME¶
/proc/pid/task/, /proc/tid/, /proc/thread-self/ - thread
information
DESCRIPTION¶
- /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)).
- /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.