Linux «видит» потоки как процессы, это означает, что все процессы являются потоками одного потока.
в таблице процессов (task_struct), когда мы создаем процесс, он создает PID, когда мы создаемвторой поток, тогда PID становится TGID (идентификатор группы потоков), и каждый поток получает TID (идентификатор потока).
В пользовательском пространстве мы увидим только первый поток (используя ps aux), но если мы выполним "ps-eLf "мы увидим новый столбец с именем LWP (облегченный процесс), который представляет собой TID.
, например, $ ps -eLfUID PID PPID LWP C NLWP STIME TTY TIME CMD
root 1356 1 1356 0 4 2014?00:00:00 / sbin / rsyslogdroot 1356 1 1357 0 4 2014?00:02:01 / sbin / rsyslogdroot 1356 1 1359 0 4 2014?00:01:55 / sbin / rsyslogdroot 1356 1 1360 0 4 2014?00:00:00 / sbin / rsyslogddbus 1377 1 1377 0 1 2014?00:00:00 dbus-daemon
Как мы видим, PID такой же, но реальный PID - это LWP (TID).Когда процесс имеет только один поток (например, демон dbus), PID = LWP (TID)
Внутренне ядро всегда использует TID, такой как PID.
После этого ядро сможетиспользовать расписание каждого потока, используя реальный параллелизм.