`

trylock

 
阅读更多
#include <pthread.h>
#include <iostream>
using namespace std;

pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;

void testLock()
{
    int ret = pthread_mutex_trylock(&g_mutex);
    cout << "try lock:" << ret << endl;
    ret = pthread_mutex_unlock(&g_mutex);
    cout << "unlock:" << ret << endl;
}

int main()
{
    testLock();
    cout << "---------test lock twice---------" << endl;
    pthread_mutex_lock(&g_mutex);
    testLock();
    pthread_mutex_unlock(&g_mutex);
}

try lock:0
unlock:0
---------test lock twice---------
try lock:16
unlock:0
分享到:
评论

相关推荐

    redisson lock和tryLock 分布式锁简单练习

    redisson lock和tryLock 分布式锁简单练习

    Lock_TryLock.rar

    本示例是基于QT多线程互锁的示例,介绍了QMutex lock,trylock以及QMutexLocker的用法区别。

    test try lock java

    演示如何通过java nio设计lock

    JAVA Lock加锁实例

    Lock锁是对象锁,仅在同一对象中,锁才会生效。(不做论证) (以下场景皆为单例模式下运行) lock.lock()的加锁方式,会使后续请求的...lock.tryLock(1000, TimeUnit.SECONDS)的加锁方式,允许堵塞时间,若在堵……

    Lock总结.doc

    java多线程之lock。 Lock的基本用法如下,为了防止异常退出时没有释放锁,一般都在拿到锁后立马try,try住所有临界区的代码,然后finally释放锁。

    Lock锁的底层原理完整版

    具体来说,Lock锁有以下主要方法:lock()用于上锁,unlock()用于解锁,tryLock()尝试非阻塞地获取锁,tryLock(long time, TimeUnit unit)超时获取锁。此外,Lock接口还有一个带条件的锁——Condition接口的实现类...

    Lock接口与synchronized关键字

    此外,Lock接口还提供了更灵活的锁获取方式,如可以尝试获取锁(tryLock),可以设置锁的获取超时时间等。这些功能使得Lock接口在处理复杂的并发场景时更具优势。 在性能方面,synchronized通常比Lock接口开销更小...

    Python应用实战:python多线程-多线程安全问题&lock与rlock.zip

    Python应用实战:python多线程-多线程安全问题&lock与rlock.zip

    linux信号量机制

    函数sem_trywait()和函数pthread_ mutex_trylock()起同样的作用,它是函数sem_wait()的非阻塞版本。它们都在头文件/usr/include/semaphore.h中定义。  信号量的数据类型为结构sem_t,它本质上是

    netbox解压解封解包软件

    NetBox是一个小型的asp网站服务器,这个工具可以把通过NetBox封装的网站程序解开,NETBOX软件封装成exe的软件后,想解压出源文件和数据库,这个软件就可以帮助你分离出软件的源码和数据库文件出来,在用数据库文件...

    Linux系统编程之线程同步

    trylock加锁失败直接返回错误号(如:EBUSY),不阻塞。 加锁步骤测试: 看如下程序:该程序是非常典型的,由于共享、竞争而没有加任何同步机制,导致产生于时间有关的错误,造成数据混乱: #include #include #...

    PLock-简单高效的跨进程锁,支持读写锁分离.zip

    }// in non-blocking modeif(pLock.tryLock()) { try { // to do something...  } catch (Exception e) { // errors  } finally {  pLock.unlock();   } }  // non-block read ...

    redis-kit:这是用于分布式环境的Redis Util集合

    Redis分布式套件 此仓库使用本地同步锁和Redis锁来提供高性能...总之,使用锁时redis-kit的速度几乎与redisson一样快,但是使用tryLock时,redis-kit的速度比redisson快40%。 在您的项目中导入Redis Kit &lt; gro

    go语音实现等待超时锁的思考过程

    go语言超时锁,实现类似c里面的tryLock的等待超时效果。

    汪文君高并发编程实战视频资源全集

     高并发编程第三阶段04讲 利用CAS构造一个TryLock自定义显式锁-增强并发情况下.mp4  高并发编程第三阶段05讲 AtomicBoolean源码分析.mp4  高并发编程第三阶段06讲 AtomicLong源码分析.mp4  高并发编程第三阶段07...

    汪文君高并发编程实战视频资源下载.txt

     高并发编程第三阶段04讲 利用CAS构造一个TryLock自定义显式锁-增强并发情况下.mp4  高并发编程第三阶段05讲 AtomicBoolean源码分析.mp4  高并发编程第三阶段06讲 AtomicLong源码分析.mp4  高并发编程第三阶段07...

    umutex:Golang解锁互斥锁

    解除互斥锁这个简单的程序包为那些不想编写... TryLock () {fmt . Println ( "SUCCESS" )} else {fmt . Println ( "FAILURE" )}// Second time, try should fail as it's lockedif mutex . TryLock () {fmt . Println

    JUC知识点总结(三)ReentrantLock与ReentrantReadWriteLock源码解析

    尝试非阻塞地获取锁:tryLock(),调用方法后立刻返回; 能被中断地获取锁:lockInterruptibly():在锁的获取中可以中断当前线程 超时获取锁:tryLock(time,unit),超时返回 Condition 类和 Object 类锁方法区别区别 ...

    glibc:Linux C 库开发

    v3:嵌套 trylock 现在默认中止。 Trylock 对未升级的锁启用省略。 各种错误修复。 新的初始值设定项,删除外部接口中的显式新锁类型。 将中止钩子的示例添加到手册中。 修复错误并清理配置解析器。 修复锁忙处理中...

    JAVA核心知识点整理(有效)

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................

Global site tag (gtag.js) - Google Analytics