社区
其它技术问题
帖子详情
信号量应用场景问题
nickowen
2011-07-29 03:26:11
http://blog.csdn.net/bao_qibiao/article/details/4516196
最后说的红色字说:
"比如现在一位用户购买了一份三个并发访问许可的数据库系统,可以根据用户购买的访问许可数量来决定有多少个线程/进程能同时进行数据库操作,这时候如果利用互斥量就没有办法完成这个要求,信号灯对象可以说是一种资源计数器"
我怎么感觉用互斥量也可以做?
3个并发同时操作一个资源对象的时候.用互斥量一样可以.没搞懂为什么说用不了互斥量
...全文
192
2
打赏
收藏
信号量应用场景问题
http://blog.csdn.net/bao_qibiao/article/details/4516196 最后说的红色字说: "比如现在一位用户购买了一份三个并发访问许可的数据库系统,可以根据用户购买的访问许可数量来决定有多少个线程/进程能同时进行数据库操作,这时候如果利用互斥量就没有办法完成这个要求,信号灯对象可以说是一种资源计数器" 我怎么感觉用互斥量也可以做? 3个并发同时操作一个资源对象的时候.用互斥量一样可以.没搞懂为什么说用不了互斥量
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nickowen
2011-07-29
打赏
举报
回复
互斥量不是还可以在不同应用程序使用?
只能有一个进程在操作的是临界区把?
我想问的只是正对我上面说的那种情况.3个并发DB访问.对共享资源互斥量可以做了.
用信号灯当然也可以做.使用同步和互斥量在这是一个意思.
justkk
2011-07-29
打赏
举报
回复
用互斥量,同一时刻只能有一个进程在操作
信号量可以设置一个初始值,比如3,然后每个进程可以拿取一个,第四个进程再来拿取时将阻塞
无线上网技巧、天线制作(可免费上网)
无线上网技巧、天线制作(可免费上网) 这个教你的怎么更好的接收信号,制作设备等。
信号量
的
应用场景
而尝试获得该
信号量
的线程,将直接在这个
信号量
上进行等待。这类场合也可以看成把
信号量
用于工作完成标志:持有
信号量
的线程完成它自己的工作,然后通知等待该
信号量
的线程继续下一部分工作。当持有
信号量
的线程完成它处理的工作时,释放这个
信号量
,可以把等待在这个
信号量
上的线程唤醒,让它执行下一部分工作。此时,可以设置
信号量
的初始值为 0,线程在获取这个
信号量
时,由于
信号量
资源不足,线程会挂起直到这个
信号量
被释放。当获取
信号量
的线程处理完毕,释放
信号量
后,会唤醒挂起队列中的第一个线程而获得资源的访问权限。
FreeRTOS学习笔记(应用)-- 各种
信号量
的
应用场景
二进制
信号量
:侧重“同步”(事件通知),如中断-任务、任务-任务的触发。计数
信号量
:侧重“数量管理”,如有限资源分配或事件次数统计。互斥
信号量
:侧重“共享资源保护”,解决多任务竞争,带优先级继承。递归互斥
信号量
:侧重“嵌套访问保护”,避免同一任务的自我死锁。实际使用时需根据场景选择,避免滥用(如用Mutex做同步会浪费优先级继承的开销,用二进制
信号量
做互斥可能导致优先级反转)。
【关于Linux中----
信号量
及其使用场景】
文章目录 一、解释
信号量
1.1 概念的引入 1.2
信号量
操作和使用接口 二、
信号量
使用场景 2.1 引入环形队列&&生产消费
问题
2.2 代码实现 2.3 对于多生产多消费的情况 2.4 申请
信号量
和加锁的顺序
问题
2.5 多生产多消费的意义
信号量
应用场景
总结
如果在共享内存中有并发的操作,即多个进程同时往同一块共享内存写东西,就会出错,例如两个并发进程,同时操作共享内存(往其写),会在中途出错。详见 现在就用
信号量
来保护共享内存,这里为p,确保其结果为20000000
信号量
(相当于一个红绿灯) 通过这个灯来保护共享资源(让其它人操作不了) 级别: cpu ,寄存器,一级缓存,二级缓存(缓存相当于高级ram,只是放在cpu里边,其存
其它技术问题
3,881
社区成员
9,045
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章