windows – 线程ID与线程句柄

一个令人尴尬的问题:线程ID和线程句柄之间有什么区别?为什么两者都需要? Windows和Linux之间有区别吗?
最佳答案
据我所知,Linux的pthread库没有线程句柄的概念. pthread_create和其他pthreads函数,返回一个线程ID.

在Windows下,线程句柄与线程ID不同,与文件句柄与文件名不同的方式相同.

线程句柄是一个令牌,它允许你对线程做一些事情(通常等待或杀死它). Win32具有许多对象的这些令牌,并且通常称它们为HANDLE.

令牌本质上是运行(或停止)线程的指针,并具有一组与之关联的能力,例如,您可以拥有一个允许您等待但不能杀死线程的句柄.以同样的方式,我们可以有一个只读的文件句柄.

这种间接方式可能有用,也可能没用,但它是Win32的方式,它与处理其他类型对象的方式大体一致.

转载注明原文:windows – 线程ID与线程句柄 - 代码日志