【1】 CloseHandle函数处理不再使用的核心对象。这是因为,一个核心对象,在被创建出来以后,可以被多个拥有者拥有,核心对象是由操作系统来处理的,因此,可以跨线程,跨进程。
为了实现这种特性,对于核心对象,有一个“引用计数”的计数,具体地说就是:跟随一个核心对象的还有一个整数,在核心对象被创建出来时,这个数为1,其他的拥有者通过某种方式“拥有”了这个对象,这个数值加1;当拥有者释放了其拥有权时,该数减1;当该数为0时,表示没有任何拥有者拥有该对象,则操作系统负责销毁该对象。整个过程是操作系统负责的,对程序员来说是透明的。
CloseHandle函数的作用是负责释放某个拥有者对核心对象的拥有权(计数减1)。其函数原型如下:BOOLCloseHandle(HANDLE hObj)。
【2】 什么是核心对象:
从编程语言的角度来说,一个核心对象实际上是一个整数值。用数据类型HANDLE表示;
对于Windows操作系统来说,一个核心对象所代表的远远不止这些。核心对象其实就是一个“对象”,代表着某种事物,该对象由操作系统负责管理,围绕某种对象,通常有一组API函数负责完成常见的功能。常见的核心对象有下面几种:
[1]Process [2] Thread [3] File [4] Event [5] Semaphore [6] Mutex [7] Named Pipe [8] Anonymous Pipe
CreateThread函数返回了一个线程核心对象...