Tôi sẽ sử dụng boost::mutex
từ boost/thread/mutex.hpp
. Có một số cách để khóa/mở khóa mutex: với scoped_lock
, unique_lock
, lock_guard
, các chức năng thành viên của mutex ::lock()
và ::unlock()
và các chức năng không phải là thành viên lock()
và unlock()
.boost scoped_lock vs plain lock/mở khóa
Tôi nhận thấy rằng boost::scoped_mutex
là một trong những cách phổ biến nhất để sử dụng mutex. Tại sao lại thích hợp hơn với các chức năng thành viên ::lock()
và ::unlock()
?
Đặc biệt, tại sao tôi nên sử dụng
{
boost::scoped_lock lock(mutex)
// ...
// read/output sharing memory.
// ...
}
hơn
mutex.lock()
// ...
// read/output sharing memory.
// ...
mutex.unlock()
là scoped_lock
tốt hơn chỉ vì một số điểm phong cách mã hóa của xem hoặc là ::lock()/::unlock()
không phải là "chủ đề đủ an toàn"?
cảm ơn bạn đã giải thích rõ ràng. – Max
@Max: Vui vì nó đã giúp –