7-muduo-base-Mutex
1 类说明
muduo的锁,这里是封装了pthread_mutex_t,对应c++11中的std::mutex
-
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。
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
-
-

浙公网安备 33010602011771号