今天来通过实验,验证一个我一直以来模模糊糊的问题:线程创建后是否需要CloseHandle?
实验
我们首先创建一个Windows控制台程序,然后通过_beginthreadex来创建一个简单的线程。
示例代码如下
线程计数
我们打开任务管理器,观察程序的线程计数,可以看到,当创建的线程正在执行时,线程计数为2,也即一个主线程加上我们创建的线程,当线程结束运行,线程计数降为1,也即只剩下主线程了。
应用程序句柄
打开ProcessExplorer工具,可以看到程序中打开的所有句柄,其中就用我们创建的线程句柄。