主线程只要拥有线程句柄,事后就可以对线程执行某些操作,比如查询线程状态等等,靠的就是句柄,如果没有句柄,系统就无从知道要查的是那个线程的状态。但保持这个句柄不关闭,并不是线程运行的条件。
关闭线程句柄只是释放句柄资源,新开启线程后,如果不再利用其句柄,应该关闭句柄,释放系统资源。关闭线程句柄和线程的结束与否没有关系。
句柄可以认为是系统对资源(如线程)的分配的一个编号。关闭这个编号,对于不同的资源,效果不尽相同。对于线程来说,关闭这个编号并不意味着终止线程,只是之后很难再操纵这个线程。这就好比摘掉了门牌号,并不伤害这一家人,只是以后往这送信就麻烦些了。还有,如果主线程只想创建线程,而并不想之后再查询或操纵它,那么及时关闭句柄是个好习惯,免得当时没关,以后又忘了,于是泄漏了系统的句柄资源(系统句柄总数是有限的)。
如果知道引用计数是怎么回事就很好解释了。CloseHandle(hThread) 只是减去一个hThread的引用计数。
线程句柄就像你家的地址,线程就像你的家房子,你说如果没有了你家的地址,难道就没有你家的房子了吗?
线程与线程句柄也是一样的道理,句柄只是可以对这个线程作一些操作。
CloseHandle是关闭线程句柄,用来释放线程资源的,不是终止线程的.线程的终止用terminatethread或exitthread,TerminateThread的使用会导致各类资源释放问题,主要是与该线程相连的各类dll,他们无法得到线程退出的通知。应该在线程中自然退出(即隐式调用ExitThread)或直接显式调用ExitThread。退出的时机应由同步对象或其他机制来实现,而且主线程一般应使用WaitForSingleObject函数等待该线程的句柄,以确保线程的退出。
希望对你有帮助 ......
转自:http://blog.csdn.net/boy8239/article/details/2148373
分享到:
相关推荐
函数CloseHandle()用于关闭已打开对象的句柄,其作用与释放动态申请的内存空间类似,这样可以释放系统资源,使进程安全运行。 原型: BOOL CloseHandle( HANDLE hObject ); 参数说明: hObject:已打开对象的...
返回值:线程句柄 long型 VB申明及参数示例: Public Declare Function CreateThreadE Lib "VBCreateThread.dll" (ByVal address As Long, ByVal p0 As Long, ByVal p1 As Long, ByVal p2 As Long, ByVal p3 As Long)...
易语言取窗口进程线程句柄等源码。@易语言源码分享站。
//线程1线程句柄 HANDLE hThread2; //线程2线程句柄 HANDLE hThread3; //线程3线程句柄 在增加三个结构体类型的变量,用做线程函数的参数传递; HANDLE hThread1; //线程1线程句柄 HANDLE hThread2; //线程2...
易语言取窗口进程线程句柄等源码,取窗口进程线程句柄等,根据进程名取窗口句柄,根据窗口句柄取进程名,取进程线程标识符_,打开进程_,寻找顶级窗口_,关闭内核对象_,创建系统进程快照,取快照中第一个进程信息,取快照中下...
在控制台创建两个线程以后,此时任务管理器出现3个线程(一个主线程+2个子线程)...线程1退出后,关闭线程1句柄 线程2退出后,不关闭线程2句柄 手动关闭线程2句柄。 任务管理器中将看到: 线程数递减,句柄数也依次减少。
用CreateThread()函数创建线程将返回一个线程句柄,通过该句柄你可以控制和操作该线程,当你不用时可以一创建该线程后就关闭该句柄,有专门的函CloseHandle()。关闭句柄不代表关闭线程,只是你不能在外部控制该...
易语言源码易语言取窗口进程线程句柄等源码.rar
滴水线程创建句柄表课上代码
在本文中小编给大家分享了关于易语言关闭多线程句柄方法以及实例内容,需要的朋友们参考下。
进程线程
简易任务管理器 可枚举、关闭进程、句柄、线程等 附带易语言源码 效果图 http://bbs.eyuyan.com/UploadFile/2010-2/201021519265860568.gif
查看WINDOWS环境各种资源((CPU、内存、句柄、加载dll、线程及堆栈等)
最近捣鼓了一下多线程的同步问题,发现其实C#关于多线程同步事件处理还是很灵活,这里主要写一下,自己测试的一些代码,涉及到了AutoResetEvent 和 ManualResetEvent,当然还有也简要提了一下System.Threading....
程序主要功能是:输入进程pid,对该pid进程进行所占物理内存、句柄数、线程数、GDI数等增长情况进行监控,并将数据保存txt文件,便于事后分析,主要应用与开发过程中监控内存泄漏等
进程标示取窗口句柄,EnumWindowsProc,取祖宗,GetWindowThreadProcessId,EnumWindows,进程快照,进程获取线程,枚举窗口过程,按窗口句柄取进程信息,取文件名,按进程名获取窗口信息,创建快照,第一个进程,下一个进程,获得...
输入进程的PID,在任务管理器中可以添加PID列即可查看到,然后输入要监控的间隔。启动后即可监控,停止后会在程序目录生成一个日志。
枚举进程 线程 模块 句柄 取CPU信息 缓存 页文件信息等等
易语言多线程支持模块1.1源码,多线程支持模块1.1,等待线程,启动线程,关闭线程句柄,强制结束线程,创建进入许可证,删除进入许可证,进入许可区,退出许可区,CreateThread,WaitForSingleObject,CloseHandle,...