只知道如果我们用默认的pthread_attr_t
调用pthread_create,那么Posix
会保留退出的线程信息供其他线程查询,如果我们有僵尸线程泄漏没有调用 pthread_join
。
但据我所知,在Windows
平台上,您不需要在线程存在后调用WaitForSingleObject
或GetExitCodeThread
。
那么Win32
如何处理僵尸线程问题,会不会出现资源泄露?
最佳答案
在 Windows 上,线程是 HANDLE
从用户模式引用的内核对象。内核对象的一个属性是它 "remains in memory as long as at least one object handle exists."
如果您不在线程句柄上调用 CloseHandle
,就会泄漏内核对象。
关于c++ - 为什么 Win32 没有僵尸线程问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22318988/