boost互斥锁_在两个不同的类中使用Boost互斥锁

我在MessageQueue类中使用boost mutex作为以下方法中的私有成员

void MessageQueue::Dequeuee()

{

Request rq(messageWareHouse.front().reqID,messageWareHouse.front().seq,

messageWareHouse.front().sMessage);

while(true)

{

boost::unique_lock<:mutex> lock(qMutex);

qCond.wait(lock);

**reqCollection**.find(messageWareHouse.front().reqID)->second.addSegments(messageWareHouse.front().seq,

messageWareHouse.front().sMessage );

}

....reqCollection是一张地图

map reqCollection;内部请求时,我尝试初始化互斥我得到下面的错误

class Request

{

private:

size_t RequestID;

public:

boost::mutex qMutex;

Request(size_t requestID,size_t seq, std::string sMessage);

void addSegments(size_t seq, std::string sMessage);

};据我搜索谷歌here这个错误,该问题的解决方案是

Place (smart) pointers for the mutex or the class containing the mutex

但这是否意味着我只能通过传递指针在整个项目中使用一个互斥变量?为什么提高是保护互斥体

错误是

Error 7 error C2248: 'boost::mutex::mutex' : cannot access private member declared in class 'boost::mutex'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值