7-muduo-base-Mutex

 

1 类说明

muduo的锁,这里是封装了pthread_mutex_t,对应c++11中的std::mutex

(221条消息) C11:mutex和lock_guard的使用.闭上左眼看世界的博客-CSDN博客lock_guard

 

## 2 继承

  • noncopyable

    • 表明这个类不可以拷贝复制

 

2 成员变量说明

  • mutex_

    • 互斥变量,pthread_mutex_t类型

  • holder_

    • 指明锁的持有者(线程or进程???),pid_t类型,其实就是int

  • 友元类 Condition

  • 内嵌类UnassignGuard:这个类只有一个MutexLock的成员变量owner_ ,两个函数调用的owner_ 的unassignHolder和assignHolder函数

 

2.5 MutexLockGuard

继承noncopyable,这个类主要和标准库的lock_guard作用差不多,主要是构造时lock,析构时unlock。

(221条消息) C11:mutex和lock_guard的使用.闭上左眼看世界的博客-CSDN博客lock_guard

 

3 成员函数说明

1 non-static

  • 构造函数:

    • 初始化holder_为0

    • 初始化mutex_

  • 析构函数

    • 销毁mutex_

  • isLockedByThisThread

    • 检查锁是否有当前线程持有

  • assertLocked

    • 断言当前线程是持有锁的

  • lock

    • pthread_mutex_lock

    • 调用assignHolder

  • unlock

    • 调用unassignHolder

    • pthread_mutex_unlock

  • getPthreadMutex

    • 返回mutex_

  • unassignHolder

    • 将holder_置为0

  • assignHolder

    • 将holder_置为当前线程的tid

    •  
posted @ 2023-05-04 10:02  DavidJIAN  阅读(29)  评论(0)    收藏  举报