c++ - 为什么 Win32 没有僵尸线程问题?

标签 c++ multithreading winapi posix

只知道如果我们用默认的pthread_attr_t调用pthread_create,那么Posix会保留退出的线程信息供其他线程查询,如果我们有僵尸线程泄漏没有调用 pthread_join

但据我所知,在Windows 平台上,您不需要在线程存在后调用WaitForSingleObjectGetExitCodeThread

那么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/

相关文章:

.NET 内核之间线程的移动

c - 如何有效地阻塞线程直到满足特定条件

windows - 如何以编程方式检测操作系统何时完成加载其所有应用程序\服务?

c++ - TreeView - 获取选中的节点

c# - 为特定的 GDI 设备上下文禁用抗锯齿

函数体中没有使用c++成员函数参数,这是什么情况?

c++ - 在函数参数列表中向前声明的类型如何在函数范围外可见?

c++ - Qt 向 QMainWindow 添加非菜单栏键盘快捷方式

c++ - 使用std::forward_list的队列实现返回错误

c# - Thread.Interrupt 不工作