学习笔记(07):c++11并发与多线程-unique_lock详解

立即学习:https://edu.csdn.net/course/play/9377/196525?utm_source=blogtoedu

1.unique_lock取代lock_guard

unique_lock是个类模板。工作中一般lock_guard足够了(推荐使用)。

unique_lock使用方式和lock_guard创建方式一样。

unique_lock submutex(mymutex);

2.unique_lock的第二个参数

2.1 std::adopt_lock

这个标记的效果,假设调用线程一方已经lock成功。通知lock_guard不需要在构造函数中lock。

灵活性。

2.2std::try_to_lock

unique_lock submutex(mymutex, std::try_to_lock);

if (submutex.owns_lock())

...

else

...

2.3std::defer_lock

初始化一个未加锁的mutex。

3.unique_lock的成员函数

3.1lock()

3.2unlock()

3.3try_lock()

3.4release()

release 返回一个mutex指针

接管过来需要看好后面自己负责的操作。

4.unique_lock所有权的传递。

你可能感兴趣的:(研发管理,c语言,并发,c++11,多线程,c++)