mirror of
https://github.com/changkun/modern-cpp-tutorial.git
synced 2025-12-16 20:27:08 +03:00
book: revise the description of RAII (#288)
This commit is contained in:
@@ -35,7 +35,7 @@ C++11 introduces a class related to `mutex`, with all related functions in the `
|
||||
It can be locked by its member function `lock()`, and `unlock()` can be unlocked.
|
||||
But in the process of actually writing the code, it is best not to directly call the member function,
|
||||
Because calling member functions, you need to call `unlock()` at the exit of each critical section, and of course, exceptions.
|
||||
At this time, C++11 also provides a template class `std::lock_guard` for the RAII syntax for the mutex.
|
||||
At this time, C++11 also provides a template class `std::lock_guard` for the RAII mechanism for the mutex.
|
||||
|
||||
RAII guarantees the exceptional security of the code while keeping the simplicity of the code.
|
||||
|
||||
|
||||
@@ -35,7 +35,8 @@ C++11 引入了 `mutex` 相关的类,其所有相关的函数都放在 `<mutex
|
||||
而通过其成员函数 `lock()` 可以进行上锁,`unlock()` 可以进行解锁。
|
||||
但是在实际编写代码的过程中,最好不去直接调用成员函数,
|
||||
因为调用成员函数就需要在每个临界区的出口处调用 `unlock()`,当然,还包括异常。
|
||||
这时候 C++11 还为互斥量提供了一个 RAII 语法的模板类 `std::lock_guard`。
|
||||
而 C++11 为互斥量提供了一个 RAII 机制的模板类 `std::lock_guard`。
|
||||
|
||||
RAII 在不失代码简洁性的同时,很好的保证了代码的异常安全性。
|
||||
|
||||
在 RAII 用法下,对于临界区的互斥量的创建只需要在作用域的开始部分,例如:
|
||||
|
||||
Reference in New Issue
Block a user