请教一下各位,我有个地方需要多个线程排队访问某个资源的问题,我有个排队
对象 queue,他有两个函数queueIn(进队列),和queueOut(出队列),
为了简单起见我这里只用了两个线程去排队,queue里面有个mutex用于互斥,queueIn里面会去lock这个互斥量,queueOut会去unlock这个互斥量,程序启动
了以后两个线程会在自己的run函数(qt,其他的类似)里面去调用queue.queueIn()进行排队,因为有互斥量的存在按道理一个线程会lock成功,而另一个线程会阻塞在里面直到前一个线程调用queueOut释放掉互斥量,但是呢结果是这两个线程居然都lock互斥量成功了,都直接通过了这个阻塞函数,互斥量居然没起到他的作用,请教一下各位大神,这种情况该怎么处理,我就是想弄个阻塞队列,让多个线程阻塞在queueIn这里,等待上一个线程资源访问完成再依次序通过,但是在目前两个线程这种简单情况下互斥量是类成员,居然表现得像是函数的局部变量一样,没起到互斥作用,请帮助解决一下,谢谢
多线程互斥失败的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
相关推荐 更多相似问题
点击登录
提问题
悬赏问题
- ¥15 Maya的Fbx模型导入Ue4.24后为什么个别部位的UV发生了改变?
- ¥15 网页设计与开发html
- ¥15 bin格式的程序文件烧录GD32F105芯片。起始地址填多少?
- ¥15 python对txt文件的处理
- ¥25 需要一个能在H5中实现扫码的插件
- ¥50 ArcGIS或MATLAB实现批量计算整个tif图像的EVI
- ¥20 两个板子之间CAN通信ID号怎么设置
- ¥15 两个板子CAN通信的话ID号怎么设置
- ¥15 vue使用element-ui的el-upload上传图片至服务器,服务端使用的是node.js,图片上传成功,但界面显示不出来,是跨域问题?
- ¥15 ANSYS APDL循环结果输出