[C++11 多线程同步] --- 互斥锁
Posted Overboom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C++11 多线程同步] --- 互斥锁相关的知识,希望对你有一定的参考价值。
1 四种互斥锁
在 C++11 中一共提供了四种互斥锁:
std::mutex:独占的互斥锁,不能递归使用
std::timed_mutex:带超时的独占互斥锁,不能递归使用
std::recursive_mutex:递归互斥锁,不带超时功能
std::recursive_timed_mutex:带超时的递归互斥锁
互斥锁在有些资料中也被称之为互斥量,二者是一个东西。
互斥锁是一种简单的加锁的方法来控制对共享资源的访问。只要某一个线程上锁了,那么就会强行霸占公共资源的访问权,其他线程试图访问资源会被阻塞,直到这个线程解锁了。互斥锁只有两种状态,即上锁( lock )和解锁( unlock )。
2 mutex
2.1 mutex的成员函数
2.1.1 lock()
lock() 函数用于给临界区加锁,并且只能有一个线程获得锁的所有权,它有阻塞线程的作用,函数原型如下:
void lock();
2.1.2 try_lock()
try_lock()函数原型如下:
bool try_lock();
try_lock() 不会阻塞线程,l
以上是关于[C++11 多线程同步] --- 互斥锁的主要内容,如果未能解决你的问题,请参考以下文章