线程的CloseHandle()

原创 2007年09月12日 15:13:00
 1,线程的handle用处:

    线程的handle是指向“线程的内核对象”的,而不是指向线程本身.每个内核对象只是内核分配的一个内存块,并且只能由内核访问。该内存块是一种数据结构,它的成员负责维护对象的各种信息(eg: 安全性描述,引用计数等)。

2,CloseHandle()作用

   在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。

   但是这个handle并不能完全代表这个线程,它仅仅是线程的一个“标识”,系统和用户可以利用它对相应的线程进行必要的操纵。如果在线程成功创建后,不再需要用到这个句柄,就可以在创建成功后,线程退出前直接CloseHandle掉,但这并不会影响到线程的运行。

3,不执行CloseHandle() 带来的后果

   若在线程执行完之后,没有通过CloseHandle()将引用计数减1,在进程执行期间,将会造成内核对象的泄露,相当与句柄泄露,但不同于内存泄露,这势必会对系统的效率带来一定程度上的负面影响。但是,请记住,当进程结束退出后,系统仍然会自动帮你清理这些资源。但是在这里不推荐这种做法,毕竟不是一个良好的编程习惯!呵呵!

相关文章推荐

线程的CloseHandle和WaitForSingleObject

最近在学习的时候 需要创建多线程的应用程序来访问设备 但是不知道为什么始终进不了线程的执行函数里边 经过一番百度 知道了原因 写下以下总结 在学习线程的时候书上有这么一段话“线程对象也可以提前释...
  • whatday
  • whatday
  • 2011年12月28日 17:16
  • 6200

线程中 CloseHandle()函数的使用

CloseHandle()函数的使用?? 很多程序在创建线程都这样写的: ............ ThreadHandle = CreateThread(NULL,0,.....); ...

线程创建后为什么要调用CloseHandle

很多程序在创建线程都这样写的:  ............  ThreadHandle = CreateThread(NULL,0,.....);  CloseHandel(ThreadHand...

CreateThread后立即CloseHandle,为什么线程还在运行?

最近回顾了下多线程的东西,碰到CloseHandle函数,之前也碰到过,但是自己积累不足,所以也没理解明白。这次再次碰到,想想积累的也差不多了,索性就搞个明白。 函数说明 BOOL Clo...

多线程CreateThread()之后,CloseHandle()为什么不会直接关闭线程。

在调用CreateHandle创建线程之后,线程内核对象的引用计数不为1,再CloseHandle就会使其引用计数减至0,系统就会销毁该内核对象, 那为什么一般要立即执行CloseHandle()函数...

多线程--内核对象和句柄泄露&CloseHandle

转载地址:http://hi.baidu.com/yangdgjy/item/ac4fc7fe83750dc30dd1c8a4 1.什么是内核对象? 内核对象是操作系统分配的一个内存块,该...
  • blacet
  • blacet
  • 2013年05月14日 10:21
  • 678

多线程中CloseHandle()函数的使用

CloseHandle()函数的使用?? 很多程序在创建线程都这样写的: ............ ThreadHandle = CreateThread(NULL,0,.....); ...

多线程--内核对象和句柄泄露&CloseHandle

多线程--内核对象和句柄泄露&CloseHandle 1.什么是内核对象? 内核对象是操作系统分配的一个内存块,该内存块是一个数据结构,用于管理对象的相关信息。 当应用程序要...
  • softfox
  • softfox
  • 2013年01月27日 19:31
  • 1412

CloseHandle疑惑

句柄实际上是指向内核对象内存块的指针、访问掩码、标志.(其实微软为了隐藏里面的结构体,故意以void*来表示) 对于Windows的线(进)程而言,系统总是维护一个与当前进程(线)相关的一张句柄表....

对CloseHandle用法的理解

很多程序在创建线程都这样写的: 。。。 ThreadHandle = CreateThread(NULL,0,.....); CloseHandle(ThreadHandle ); 。。。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:线程的CloseHandle()
举报原因:
原因补充:

(最多只允许输入30个字)