信号量是一个很好用的内核对象,用来控制对一些资源的访问,比如可以用来控制缓冲区块的数量!
为了保证系统的性能,常常要保证一定数量的空闲缓冲区的存在。这可以通过信号量来实现:
假设系统要求空闲缓冲区块的数量要时刻保证在10个左右,这样系统可以有很好的效率。那么我们可以设定信号量可以控制的资源数为一个比较大的值,比如1000,当前值为10。当线程使用缓冲区块致使可用资源数量降到一个边界值比如5时,此线程可以负责把缓冲区的数量增加到10,避免其它线程做同样的真正申请缓冲区的操作,这可以通过调用ReleaseSemaphore来实现。当线程ReleaseSemaphore的过程中发现当前空闲资源的数量超过一个边界值,不如15,那么此线程可以减少缓冲区块的数量到10,同时使信号量的当前值减少到10,通过循环调用WaitForSingleObject来实现!
刚看了一下信号量的内容,作此设想!不成熟之处还请指正,比如线程都只申请不释放怎么办,哈哈!
- 访问:37918次
- 积分:530分
- 排名:第17名
- 随笔:53篇
- 评论:128条
随笔分类
随笔归档
个人相册
阅读排行榜
- Nasm中文手册 (1959)
- win32 api (1625)
- MS挺周到的 (1511)
- wspiapi.h(45) : error C2265.....解决办法 (1476)
- 喜欢在C/C++代码中使用汇编得小心点用 (1221)
- 在派生类中重载基类的成员函数 (1193)
- 给类变量提供初始值的方法 (1120)
- 配置数据控件以使用通用数据链接 (.udl) 文件 (1086)
- (一)什么是C++? (1045)
- 信号量用法探讨 (1031)
评论排行榜
- (四)关联容器使用参考 (9)
- 配置数据控件以使用通用数据链接 (.udl) 文件 (8)
- win32 api (8)
- 生成随机数测试代码 (5)
- MS挺周到的 (5)
- wspiapi.h(45) : error C2265.....解决办法 (5)
- 给类变量提供初始值的方法 (5)
- Nasm中文手册 (5)
- (一)什么是C++? (4)
- 喜欢在C/C++代码中使用汇编得小心点用 (4)
最新评论
- 配置数据控件以使用通用数据链接 (.udl) 文件
Bertycalse: . . <a href=></a>. .
- 配置数据控件以使用通用数据链接 (.udl) 文件
MukkAlomo: . . <a href=></a>. .
- 配置数据控件以使用通用数据链接 (.udl) 文件
Zloksmoob: . . <a href=></a>. .
- 配置数据控件以使用通用数据链接 (.udl) 文件
Sadnus:zolpidem thailand ambien effectiveness zolpidem ta...
- Nasm中文手册
Sadnus:withdrawal symptoms of ambien zolpidem er 12.5mg t...
- 配置数据控件以使用通用数据链接 (.udl) 文件
KoipSiny:zolpidem 5mg ambien with alcohol zolpidem where to...
- Nasm中文手册
KoipSiny:withdrawal symptoms of zolpidem zolpide...
- 配置数据控件以使用通用数据链接 (.udl) 文件
FreaBox:average ambien dose highest dose of amb...
- Nasm中文手册
FreaBox:ambien addiction what is the generic na...
- 配置数据控件以使用通用数据链接 (.udl) 文件
Merjoum:ambien meds ambien prescription online ...