黑名_單
2019-05-06 09:49
采纳率: 100%
浏览 305

多线程互斥失败的问题

请教一下各位,我有个地方需要多个线程排队访问某个资源的问题,我有个排队
对象 queue,他有两个函数queueIn(进队列),和queueOut(出队列),
为了简单起见我这里只用了两个线程去排队,queue里面有个mutex用于互斥,queueIn里面会去lock这个互斥量,queueOut会去unlock这个互斥量,程序启动
了以后两个线程会在自己的run函数(qt,其他的类似)里面去调用queue.queueIn()进行排队,因为有互斥量的存在按道理一个线程会lock成功,而另一个线程会阻塞在里面直到前一个线程调用queueOut释放掉互斥量,但是呢结果是这两个线程居然都lock互斥量成功了,都直接通过了这个阻塞函数,互斥量居然没起到他的作用,请教一下各位大神,这种情况该怎么处理,我就是想弄个阻塞队列,让多个线程阻塞在queueIn这里,等待上一个线程资源访问完成再依次序通过,但是在目前两个线程这种简单情况下互斥量是类成员,居然表现得像是函数的局部变量一样,没起到互斥作用,请帮助解决一下,谢谢

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题