std::lock_guard
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
| Определён в заголовочном файле <mutex>
|
||
| template< class Mutex > class lock_guard; |
(начиная с C++11) | |
Класс
lock_guard является мьютекс оболочку, которая обеспечивает удобный механизм RAII стиле за владение мьютексом на протяжении областью блок. Оригинал:
The class
lock_guard is a mutex wrapper that provides a convenient RAII стиле mechanism for owning a mutex for the duration of a scoped block. Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Когда
lock_guard объект создан, он пытается взять на себя ответственность мьютекс оно дано. Когда управление покидает область, в которой lock_guard объект был создан, lock_guard разрушается и мьютекс освобождается.Оригинал:
When a
lock_guard object is created, it attempts to take ownership of the mutex it is given. When control leaves the scope in which the lock_guard object was created, the lock_guard is destructed and the mutex is released.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
lock_guard класс не является копируемым. Поставляемых Mutex типа осуществляют BasicLockable концепции.Оригинал:
The
lock_guard class is non-copyable. The supplied Mutex type shall implement the BasicLockable concept.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Типы-члены
| Тип члена | Определение |
mutex_type
|
Mutex
Оригинал: Mutex Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
[править] Функции-члены
| строит lock_guard, необязательно блокировки данного мьютекса Оригинал: constructs a lock_guard, optionally locking the given mutex Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-член) | |
| разрушает lock_guard объекта, открывает основной мьютекс Оригинал: destructs the lock_guard object, unlocks the underlying mutex Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-член) | |
[править] Пример
Запустить этот код
#include <thread> #include <mutex> int g_i = 0; std::mutex g_i_mutex; // protects g_i void safe_increment() { std::lock_guard<std::mutex> lock(g_i_mutex); ++g_i; // g_i_mutex is automatically released when lock // goes out of scope } int main() { std::thread t1(safe_increment); std::thread t2(safe_increment); t1.join(); t2.join(); }

