C++11 中新增了mutex.用法就是简单的lock,unlock。
本篇博客重点介绍的不是mutex。是std::lock_guard。这东西是干什么的呢?它是与mutex配合使用,把锁放到lock_guard中时,mutex自动上锁,lock_guard析构时,同时把mutex解锁。
std::mutex mutex;
void testFunc()
{
// lock mutex
std::lock_guard<std::mutex> lock(mutex);
//do something might throw exception
//...
//do not unlock mutex, it will be unlocked by lock_guard destructor
}
std::lock_guard是一个局部变量,创建时,g_i_mutex 上锁,析构时g_i_mutex解锁。这个功能在函数体比较长,尤其是存在多个分支的时候很有用。
C++的功能越来越丰富,很多软件产品会越来越往流水线的发展,越来越低的门槛,越来越简单的使用。