Windows平台进程间通信: 互斥体,同步段,信号量
时间:2010-09-02
来源:kgisme170
如果不指定名字,那么Mutex和Semaphore就是匿名的,只能进程内使用了。
1. Mutex的例子: 这个程序保证只有一个实例运行。
#include"stdafx.h" |
注意到,Mutex通常用于线程之间的同步,必须在CreateMutex的时候指定属主,那么WaitForSingleObject就会等待属主线程调用ReleaseMutex释放互斥锁。就像下面这个例子:
/* |
2. 用Semaphore的例子: 信号量就是一个全局计数器。下面的程序保证自己运行不超过3个实例。
#include"stdafx.h" |
CreateSemaphore创建的时候如果起始计数=0,那么WaitForSingleObject()作为V原语是会阻塞的。ReleaseSemaphore作为P原语是增加计数。下面的程序说明了Semaphore的计数工作方式:
#include<windows.h> |
子线程1得到
主线程执行
子线程2得到
Press any key to continue . . .
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28