L'ID est l'identifiant numérique unique du thread en cours d'exécution dans le système. Un descripteur de thread, comme tout descripteur d'objet du noyau, peut être vu comme un type spécial de pointeur compté par référence vers l'objet du noyau.
Donc dans l'espace noyau il y a un objet de type THREAD avec ID =12345
Et parce que vous voulez faire quelque chose avec le thread, vous avez un pointeur dans votre espace d'adressage appelé threadID avec la valeur 44.
Veuillez noter que différents descripteurs pour le même objet du noyau ont des valeurs différentes (deux pointeurs vers un objet) et que les objets du noyau peuvent avoir des descripteurs dans plus d'un processus.
Pour autant que je sache, la bibliothèque pthread de Linux n'a pas de concept de handle de thread. pthread_create et d'autres fonctions pthreads, renvoient un ID de thread.
Sous Windows, le descripteur de thread est différent de l'ID de thread, de la même manière qu'un descripteur de fichier est différent d'un nom de fichier.
Le handle de thread est un jeton qui vous permet de faire quelque chose avec le thread (généralement l'attendre ou le tuer). Win32 a ces jetons pour de nombreux objets et les appelle HANDLE en général.
Le jeton est essentiellement un pointeur sur le thread en cours d'exécution (ou arrêté) et possède un ensemble de capacités qui lui sont associées, par exemple, vous pouvez avoir un handle qui vous permet d'attendre, mais pas de tuer, un thread. De la même manière, nous pouvons avoir un descripteur de fichier en lecture seule.
Ce niveau d'indirection peut être utile ou non, mais c'est la façon dont Win32 le fait, et il est globalement cohérent avec la façon dont il gère certains autres types d'objets.
Les identifiants de thread sont progressifs (c'est-à-dire l'un après l'autre), que vous pouvez parcourir. Les handles de thread, comme la plupart des handles dans Windows, sont en fait des pointeurs. Vous pouvez, par exemple, définir les bits de propriété de thread en utilisant le handle de thread - mais pas l'identifiant de thread .