Если потоки используют один и тот же PID, как их можно идентифицировать?

У меня есть вопрос, связанный с реализацией потоков в Linux.

Linux не имеет явной поддержки потоков. В пользовательском пространстве мы могли бы использовать библиотеку потоков (например, NPTL) для создания потоков. Теперь, если мы используем NPTL, он поддерживает отображение 1: 1.

Ядро будет использовать функцию clone () для реализации потоков.

Предположим, я создал 4 потока. Тогда это будет означать, что:

  • Будет 4 task_struct .
  • Внутри task_struct будет обеспечиваться совместное использование ресурсов в соответствии с аргументами для клонирования (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND) .

Теперь у меня следующий вопрос:

  1. Будет ли у 4 потоков одинаковый PID? Если кто-то может уточнить, как делятся PID.
  2. Как идентифицируются различные нити; есть ли понятие TID (ID потока)?
90
задан Mateusz Piotrowski 21 August 2017 в 12:26
поделиться