信号量Semaphore

Posted liu6666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号量Semaphore相关的知识,希望对你有一定的参考价值。

可以允许N个线程在同一时间访问同一资源

 

相关API函数:

 

创建信号量:

CreateSemaphore();

HANDLE CreateSemaphore(
    LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, // 安全属性,NULL为默认
    LONG lInitialCount, // 信号量初始值,要>=0且<=第三个参数
    LONG lMaximumCount, // 信号量最大值
    LPCT STRlpName// 信号量名称
);

函数调用成功返回句柄,如果创建的信号量和已有的信号量重名,那么返回已经存在的信号量句柄,失败返回NULL

 

对指定信号量增加指定的值

 

ReleaseSemaphore();

BOOL ReleaseSemaphore(
HANDLE hSemaphore,  //信号量句柄
LONG lReleaseCount, //信号量对象在当前基础上要增加的值
LPLONG lpPreviousCount //指向返回信号量上次值的变量的指针,如果不需要信号量上次的值,那么这个参数可以设置为NULL
);

 

以上是关于信号量Semaphore的主要内容,如果未能解决你的问题,请参考以下文章

Java并发工具类:Semaphore

Linux(内核剖析):31---内核同步之(信号量(semaphore)读写信号量(rw_semaphore))

Java并发多线程编程——Semaphore

java 多线程 28 : 多线程组件之 Semaphore 信号量

ios开发GCD-dispatch_semaphore_t信号量计数器

python多线程编程—同步原语入门(锁Lock信号量(Bounded)Semaphore)