核心对象

首先让我解释什么叫做“核心对象”(kernel object)。“GDI对象”是大家比较熟悉的东西,我们利用GDI函数所产生的一支笔(pen)或一支刷(brush)都是所谓的“GDI对象”。但什么又是“核心对象”呢?

 

    你可以说核心对象是系统的一种资源(噢,这说法对GDI对象也适用),系统对象一旦产生,任何应用程序都可以开启并使用该对象。系统给予核心对象一个计数值(usage count)作为管理之用。核心对包括下列数种:

 

 

核 心 对 象

产 生 方 法

event

CreateEvent

mutex

CreateMutex

semaphore

CreateSemaphore

file

CreateFile

file-mapping

CreateFileMapping

process

CreateProcess

thread

CreateThread

 

 

    前三者用于线程的同步化:file-mapping对象用于内存映射文件(memory mapping file),processthread对象则是本节的主角。这些核心对象的产生方式(也就是我们所使用的API)不同,但都会获得一个handle作为识别;每被使用一次,其对应的计数值就加1。核心对象的结束方式相当一致,调用CloseHandle即可。

 

    process对象”究竟做什么用呢?它并不如你想象的那样,用来“执行程序代码”;不,程序代码的执行是线程的工作,“process对象”只是一个数据结构,系统用它来管理进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值