社区
进程/线程/DLL
帖子详情
信号量互斥的问题
BlackSnail
2005-10-15 06:49:06
开发环境:Windows 2000+VC6.0
一块大共享内存,分为5个部分,供不同的线程读取(实际上每次读取都要将读取的内容从共享内存中删除,所以相当于只有写者没有读者)。线程都是调用同一个接口来访问共享内存,只是要传进去一个标志,表示自己要读5个部分中的哪个部分。
用什么来保证互斥访问更好呢?CreateMutex或者CreateSemaphore?或者其它?
谢谢。
...全文
260
5
打赏
收藏
信号量互斥的问题
开发环境:Windows 2000+VC6.0 一块大共享内存,分为5个部分,供不同的线程读取(实际上每次读取都要将读取的内容从共享内存中删除,所以相当于只有写者没有读者)。线程都是调用同一个接口来访问共享内存,只是要传进去一个标志,表示自己要读5个部分中的哪个部分。 用什么来保证互斥访问更好呢?CreateMutex或者CreateSemaphore?或者其它? 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sevencat
2005-10-17
打赏
举报
回复
假如是我,我会写成这样子。
class CriticalSecion;
class ShareMemory
{
void write()
{
CriticalSessionLocker locker(_lock);
....
}
void read()
{
CriticalSessionLocker locker(_lock);
....
}
private:
CriticalSesion _lock;
}
rabbitweng
2005-10-16
打赏
举报
回复
是否可以考虑用critical section?这个好像效率最高,其次是Mutex,最后是semaphore
steel007
2005-10-16
打赏
举报
回复
恩,5个Mutex,5把锁就搞定。
ookook
2005-10-15
打赏
举报
回复
5个Mutex
BlackSnail
2005-10-15
打赏
举报
回复
补充一点:
关键是访问同一部分的线程必须互斥,
而如果多个线程访问不同的部分就没关系,
所以要用到信号量组。
秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据
在《秒杀多线程系列》的前十五篇中介绍多线程的相关概念,多线程同步
互斥
问题
《秒杀多线程第四篇一个经典的多线程同步
问题
》及解决多线程同步
互斥
的常用方法——关键段、事件、
互斥
量、
信号量
、读写锁。为了让大家...
信号量
解决同步
互斥
问题
同步
互斥
问题
的产生 实际上我是从教材《现代操作系统》中了解到这种类型的
问题
,也叫做IPCIPCIPC
问题
,有几个很著名的
问题
,还蛮有意思的,就特意写篇笔记记录一下 。其中我只关注
信号量
解决
问题
的逻辑。而不是具体...
《C语言/C++学习指南》应用篇(线程与网络)
线程与网络是两项基本编程技术,无论是什么编程语法,这两项技术的概念...本课程介绍线程的概念,线程的创建、启动、停止、回收,
互斥
与
信号量
问题
。介绍网络Socket编程基本概念,UDP/TCP Socket的使用方法和注意事项。
FreeRTOS学习笔记(7)----
信号量
之
互斥
信号量
、递归
互斥
信号量
互斥
信号量
其实就是一个拥有优先级继承的二值
信号量
, 在同步的应用中(任务与任务或中断与任务之间的同步)二值
信号量
最适合。
互斥
信号量
适合用于那些需要
互斥
访问的应用中。 在
互斥
访问中
互斥
信号量
相当于一个钥匙...
详解
信号量
和
互斥
锁之间的区别和联系
也就是说,一个
互斥
量只能用于一个资源的
互斥
访问,它不能实现多个资源的多线程
互斥
问题
。
信号量
可以实现多个同类资源的多线程
互斥
和同步。当
信号量
为单值
信号量
是,也可以完成一个资源的
互斥
访问。
信号量
...
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章