用CreateSemaphore函数可以创建信号量,但是我不明白信号量的一些术语和工作原理
1.触发态和非触发态是指什么;
2.计数值何时加减1,加减一有什么作用
3.信号量是如何工作的
有谁能帮助我一下啊?

解决方案 »

  1.   

    1.触发态和非触发态是指什么;
    2.计数值何时加减1,加减一有什么作用
    3.信号量是如何工作的程序使用信号量对资源进行计数,使用信号量可以统计可用资源的数量并分配资源。
    用CreateSemaphore函数可以创建信号量,并返回其句柄。信号量保存[0-XXX]之间的记数值。
    当计数值大于0时,信号量处于信号状态,即触发态;
    当计数值等于0时,信号量处于非信号状态,即非触发态;使用WaitForSingleObject等待函数,可以获得处于信号状态的信号量。
    一旦WaitForSingleObject函数得到此信号量,将会使信号量的计数值减一,此时你可以处理资源分配的操作了。