Podle manuálové stránky pthreads je ID vlákna v procesu vytváření jedinečné, takže ano, jiné vlákno nebo proces může mít stejné ID. Pokud je však v procesu jedinečné a ID procesu je v systému jedinečné, můžete jako jedinečný identifikátor použít kombinaci těchto dvou.
Každé z vláken v procesu má jedinečný identifikátor vlákna (uložený v typu pthread_t). Tento identifikátor je vrácen volajícímu funkce pthread_create(3) a vlákno může získat svůj vlastní identifikátor vlákna pomocí pthread_self(3). ID vláken jsou zaručena pouze v rámci procesu.
TID (vrácené sys_gettid()
systémové volání) je jedinečné napříč všemi vlákny v systému a pro jednovláknový proces jsou PID a TID stejné. To znamená, že TID se nikdy nebude střetávat s PID z jiného procesu.
I když ID pthread nemusí být jedinečné, v implementaci, kde se vlákna mapují na úkoly, bude ID úlohy (jak je vidět v /proc/PID/task) ve skutečnosti jedinečné pro celý systém a bude mít formu podobnou skutečnému PID.