Khi nào tôi nên thích phần đầu tiên của mã để thứ hai, và làm họ có sự khác biệt cơ bảnmutex.lock vs unique_lock
std::mutex mtx;
mtx.lock();
... //protected stuff
mtx.unlock();
... //non-protected stuff
mtx.lock();
... //etc
và
std::mutex mtx;
std::unique_lock<std::mutex> lck(mtx);
... //protected stuff
lck.unlock();
... //non-protected stuff
lck.lock();
... //etc
Tôi hiểu lock_guard rằng về cơ bản là một unique_lock không có chức năng khóa và mở khóa, nhưng tôi đang gặp khó khăn trong việc phân biệt một mutex và một khóa bằng cách sử dụng một mutex.
liên quan cao: http://stackoverflow.com/questions/22873082/is-there- bất kỳ-idiomatic-explicit-use-of-mutexlock-hoặc-mở khóa – NathanOliver