Skip to content

Commit

Permalink
book: revise the description of RAII (#288)
Browse files Browse the repository at this point in the history
  • Loading branch information
Mq-b authored Jun 1, 2024
1 parent 2659a5f commit 7b57e5e
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
2 changes: 1 addition & 1 deletion book/en-us/07-thread.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
3 changes: 2 additions & 1 deletion book/zh-cn/07-thread.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 用法下,对于临界区的互斥量的创建只需要在作用域的开始部分,例如:
Expand Down

0 comments on commit 7b57e5e

Please # to comment.