The current version of boost::mutex
uses neither a Win32 CRITICAL_SECTION
, nor a Win32 Mutex. Instead, it uses atomic operations and a Win32 Event for blocking waits.
Older versions (boost 1.34.1 and prior) were a wrapper around CRITICAL_SECTION
on Windows.
Incidentally, the mutex itself is not scoped. The boost::mutex::scoped_lock
type and, in recent versions, boost::lock_guard<boost::mutex>
and boost::unique_lock<boost::mutex>
provide RAII wrappers for locking a mutex to ensure you don't forget to unlock it.
The boost::lock_guard<>
and boost::unique_lock<>
templates work with any type with lock()
and unlock()
member functions, so you can use them with inter-process mutexes if desired.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…