Semaphore用法

Posted 前列腺钙化

tags:

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

HANDLE hSemaphore;
cout<<1<<endl;

hSemaphore = CreateSemaphore( NULL, 0, 10000, NULL);  //初始 0个资源

ReleaseSemaphore(hSemaphore, 1, NULL); //+1
ReleaseSemaphore(hSemaphore, 1, NULL); //+1

DWORD dwWaitResult = WaitForSingleObject(hSemaphore, INFINITE);  //等待到 -1
cout<<2<<endl;
WaitForSingleObject(hSemaphore, INFINITE); //等待到 -1
cout<<3<<endl;

WaitForSingleObject(hSemaphore, INFINITE); //此时资源为0,阻塞在这里等待资源增加才能继续
cout<<4<<endl;

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

CountDownLatchCyclicBarrier和 Semaphore

Java并发编程:CountDownLatchCyclicBarrier和 Semaphore

Java并发编程:CountDownLatchCyclicBarrier和 Semaphore

CountDownLatchCyclicBarrier和Semaphore

java并发--CountDownLatchCyclicBarrier和Semaphore

Semaphore用法