std::mutex 和 std::lock_guard 小例子
阿新 • • 發佈:2018-11-27
https://blog.csdn.net/yasi_xi/article/details/19205461
Linux下,固然我們可以用 pthread_mutex_t 及 pthread_mutex_lock/unlock 來做多執行緒同步,但是通常要自己再封裝一下,比如像《pthread_mutex_t 的簡單封裝》
// global mutex
std::mutex mutex;
void f()
{
// 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::mutex,還有 std::recursive_mutex 等,和 pthread_mutex_t 的各種型別相對應。
相比pthread_mutex_t,用 stl 寫出來的程式碼更簡潔和通用。