C++11中如何使用Lock实现并发
导读:本文共12153.5字符,通常情况下阅读需要41分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: C++11 标准为我们提供了两种基本的锁类型,分别如下:std::lock_guard,与 Mutex RAII 相关,方便线程对互斥量上锁。std::unique_lock,与 Mutex RAII 相关,方便线程对互斥量上锁,但提供了更好的上锁和解锁控制。另外还提供了几个与锁类型相关的 Tag 类,分别如下:std::adopt_lock_t,一个空的标记类... ...
目录
(为您整理了一些要点),点击可以直达。std::lock_guard,与 Mutex RAII 相关,方便线程对互斥量上锁。
std::unique_lock,与 Mutex RAII 相关,方便线程对互斥量上锁,但提供了更好的上锁和解锁控制。
std::adopt_lock_t,一个空的标记类,定义如下:
上锁/解锁操作:lock,try_lock,try_lock_for,try_lock_until 和 unlock
修改操作:移动赋值(move assignment)(前面已经介绍过了),交换(swap)(与另一个 std::unique_lock 对象交换它们所管理的 Mutex 对象的所有权),释放(release)(返回指向它所管理的 Mutex 对象的指针,并释放所有权)
获取属性操作:owns_lock(返回当前 std::unique_lock 对象是否获得了锁)、operator bool()(与 owns_lock 功能相同,返回当前 std::unique_lock 对象是否获得了锁)、mutex(返回当前 std::unique_lock 对象所管理的 Mutex 对象的指针)。
C++11中如何使用Lock实现并发的详细内容,希望对您有所帮助,信息来源于网络。