首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::recursive_mutex::try_lock

bool try_lock();

?

(since C++11)

试图锁定互斥体。马上回来。关于成功锁定获取返回true,否则返回false...

此函数允许伪造失败并返回。false即使互斥锁目前没有被任何其他线程锁定。

线程可以调用try_lock在递归互斥体上重复。成功呼叫try_lock递增ownsership计数:只有在线程进行匹配次数的调用之后,互斥锁才会释放。unlock...

所有权的最大级别未指定。打电话给try_lock会回来false如果超过此数字。

优先unlock()对同一个互斥体的操作同步性中定义的28名ASstd::memory_order%29如果返回此操作true.注意到以前lock()如果此操作返回,则不与其同步。false...

参数

%280%29

返回值

true如果成功获取锁,则为false...

例外

%280%29

二次

代码语言:javascript
复制
#include <iostream>
#include <mutex>
 
int main()
{
    std::mutex test;
    if (test.try_lock()==true) {
        std::cout << "lock acquired" << std::endl;
        test.unlock();        //now unlock the mutex    
    } else {
        std::cout << "lock not acquired" << std::endl;
    }
 
    test.lock();        //to lock it again
    if (test.try_lock()) {  //true can be left out
        std::cout << "lock acquired" << std::endl;
    } else {
        std::cout << "lock not acquired" << std::endl;
    }
    test.unlock(); 
}

二次

产出:

二次

代码语言:javascript
复制
lock acquired
lock not acquired

二次

另见

lock

locks the mutex, blocks if the mutex is not available (public member function)

unlock

unlocks the mutex (public member function)

c MTX文件[医]幽会

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com