Selon la page de manuel de pthreads, l'ID de thread est unique dans le processus de création, donc oui, un autre thread ou processus pourrait avoir le même ID. Cependant, s'il est unique au sein d'un processus et qu'un ID de processus est unique dans le système, vous pouvez peut-être utiliser une combinaison des deux comme identifiant unique.
Chacun des threads d'un processus a un identifiant de thread unique (stocké dans le type pthread_t). Cet identifiant est renvoyé à l'appelant de pthread_create(3), et un thread peut obtenir son propre identifiant de thread en utilisant pthread_self(3). Les identifiants de thread sont uniquement garantis comme étant uniques au sein d'un processus.
Le TID (tel que renvoyé par le sys_gettid()
appel système) est unique sur tous les threads du système et, pour un processus monothread, le PID et le TID sont égaux. Cela signifie qu'un TID n'entrera jamais en conflit avec un PID d'un autre processus.
Bien que l'ID de pthread puisse ne pas être unique, dans une implémentation où les threads correspondent aux tâches, l'ID de tâche (comme on le voit dans /proc/PID/task) sera en fait unique à l'échelle du système et aura une forme similaire à un PID réel.