QSystemSemaphore: 在进程里做互斥的建议,针对Linux的特殊说明
来源:互联网 发布:淘宝店铺不支持7天退货 编辑:程序博客网 时间:2024/06/08 18:16
关于QT5.5的QSystemSemaphore,英文的帮助文档。
例子
QSystemSemaphore sem("market", 3, QSystemSemaphore::Create); // resources available == 3sem.acquire(); // resources available == 2sem.acquire(); // resources available == 1sem.acquire(); // resources available == 0sem.release(); // resources available == 1sem.release(2); // resources available == 3
为避免碰到特殊情况,在使用的时候,
1 可以使用Open模式创建,但resource count要一直是个固定值,最好是1。
2 如果resource count不是1,就需要注意进程意外挂掉对resource计数的影响。
注意事项来源:
针对Linux的特殊地方是,
1 如果进程意外挂掉,此时QSystemSemaphore创建的信号量可能会存活下来。方法:以对应key访问可以访问到。
2 如果QSystemSemaphore创建的信号量存活了下来,而此时如果使用
QSystemSemaphore::Open方法去重新创建信号量,例如
QSystemSemaphore sem("market",1, QSystemSemaphore::Open);
这个值1不会生效
此时由于信号量是存活的,所以这里资源数量仍然是3,而不是1
3 如果进程意外挂掉,这个进程里的系统信号量会牵连其他进程。导致该系统信号量资源数量被翻转回原始值。如果原始值是3,那么还是3.
QT小意外。如果原生QT都这样,怕wx这样次生的更会有瑕饬。
0 0
- QSystemSemaphore: 在进程里做互斥的建议,针对Linux的特殊说明
- 嵌入式linux的入门建议 ,针对新手菜鸟的
- 在mysql中事务的特殊说明:
- 针对工程师的职业建议
- linux下特殊的进程号
- Linux下3个特殊的进程
- Linux下的一种特殊进程——守护进程
- linux 内核进程监控 针对bash下启动的程序
- 针对IE6写特殊样式的方法
- 针对应用开发者的几点建议
- Linux下Shell中特殊变量$!,$?,$@,$#,$*的变量说明
- Linux首进程init的简单说明
- 特殊ip地址的说明
- Duilb控件的特殊说明
- Python针对目录操作的一点说明
- 针对ce的特殊winsock库的定义
- PinkNose -- 针对进程的网络数据截取
- 针对进程快照的死锁检测算法
- 安装numpy和matplotlib简单又不易出错的方法
- 分页的具体实现方法
- 自增主键的sql设置语句
- 指针知识点总结
- 双出口nat配置(一主一备)
- QSystemSemaphore: 在进程里做互斥的建议,针对Linux的特殊说明
- HDU 1856 More is better 并查集
- Win10 兼容性 Visual studio web应用程序 ASP.NET 4.0 尚未在 Web 服务器上注册
- 常用试用在线帮助汇总
- DOM(二)-10-(示例-删除表格的行和列)
- 黑马程序员-----IO流(3)File类、打印流、序列化、管道流、字符编码等
- JS事件冒泡(阻止)
- opencv install for ubuntu
- Storm入门教程(一)