多线程通信——信号量
来源:互联网 发布:知百家传媒 编辑:程序博客网 时间:2024/06/05 06:54
当当前资源的数量大于0的时候,等待信号量的线程可以获得一个资源并继续执行,信号量的当前资源数量将减1,如果当前资源的数量为0,则等待信号量的线程将处于等待状态,直到有线程释放信号量,使信号量标识的资源数量大于0
HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName );
HANDLE OpenSemaphore( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName );
BOOL ReleaseSemaphore( HANDLE hSemaphore, LONG lReleaseCount, LPLONG lpPreviousCount);程序实例:每个线程递增int变量,但是两个值的差不能超过5
HANDLE handle1 = CreateSemaphore(NULL, 5, 10, "se1");HANDLE handle2 = CreateSemaphore(NULL, 5, 10, "se2");DWORD WINAPI ThreadFuncSem1(PVOID pParam){int ii = 0;for (int i=0; i < 100; i++){WaitForSingleObject(handle1, INFINITE);ReleaseSemaphore(handle2, 1, NULL);ii++;}return ii;}DWORD WINAPI ThreadFuncSem2(PVOID pParam){int iii = 0;for (int i=0; i < 100; i++){WaitForSingleObject(handle2, INFINITE);ReleaseSemaphore(handle1, 1, NULL);iii++;}return iii;}int main(){HANDLE tHandle1 = CreateThread(NULL, 0, ThreadFuncSem1, NULL, 0, NULL);HANDLE tHandle2 = CreateThread(NULL, 0, ThreadFuncSem2, NULL, 0, NULL); return 0;}
- 多线程通信——信号量
- 进程间通信—信号量
- 进程间通信—信号量
- 多线程2——信号量
- 多线程同步——信号量
- Linux进程间通信——信号量
- linux 进程通信系列——信号量
- Linux进程间通信——信号量
- Linux进程间通信——信号量
- Linux进程通信——信号量
- Linux C——信号量通信
- Linux C——信号量进程通信
- linux进程通信——信号量
- 进程间通信IPC——信号量
- Linux进程间通信——信号量
- Linux进程间通信——信号量
- 进程间通信——信号量
- 进程间通信——信号量
- JAVA经典算法40题
- [C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现
- as3.0 loading...code
- JAVA
- Mediator 中介者模式
- 多线程通信——信号量
- [C# 网络编程系列]专题八:P2P编程
- servlet下载文件文件
- 请随时记得基础要牢固
- semop: Resource temporarily unavailable解决方法
- Flyweight 享元模式
- 浅谈管道模型(Pipeline)
- Android选取本地图片并加水印实例
- Request-reply messaging