ACE - ACE_Recursive_Thread_Mutex, ACE_Thread_Mutex, ACE_Condition

// Donot know when and where to use ACE_Thread_Mutex, I always use ACE_Recursive_Thread_Mutex.

 

1. define

ACE_Recursive_Thread_Mutex mMutex;

ACE_Condition<ACE_Recursive_Thread_Mutex> * mCondition;

 

 

mCondition = new ACE_Condition<ACE_Recursive_Thread_Mutex>(mMutex);

 

2. Usage

2.1 read

    mCondition->mutex().acquire_read();
    // to do your codes.
    mCondition->mutex().release();

2.2 write

    mCondition->mutex().acquire_write();

    // to do your codes.
    mCondition->mutex().release();

2.3 signal

    mCondition->broadcast();
    //mCondition->signal();

2.4 wait

    mStateCondition->wait();

    //or

    ACE_Time_Value ace_timeout(timeout);
    ACE_Time_Value ace_absolute_time(ACE_OS::gettimeofday() + ace_timeout);
    if (mStateCondition->wait(&ace_absolute_time) == -1)
    {

          // failed.
    }

 

 

3. deconstuctor

if (mCondition != 0)
{
    delete mCondition;
    mCondition=0;
}

4. Simplified mode

    ACE_Guard<ACE_Recursive_Thread_Mutex> guard(mMutex);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值