std::atomic_ref<T>::is_lock_free
bool is_lock_free() const noexcept; | (с C++20) |
Проверяет, являются ли атомарные операции над этим объектом без блокировок.
Параметры
(нет)
Возвращаемое значение
true если атомарные операции над этим объектом без блокировок, false в противном случае.
Примечания
Все атомарные типы, кроме std::atomic_flag, могут быть реализованы с использованием мьютексов или других операций блокировки, а не с использованием атомарных инструкций процессора без блокировок. Атомарные типы также могут быть иногда без блокировок, например, если только выровненные обращения к памяти естественным образом атомарны на данной архитектуре, невыровненные объекты того же типа должны использовать блокировки.
Стандарт C++ рекомендует (но не требует), чтобы атомарные операции без блокировок также были без адреса, то есть подходят для взаимодействия между процессами с использованием общей памяти.
Пример
См. также
|
[статический] | указывает, что тип всегда без блокировок (публичная статическая константа) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/atomic/atomic_ref/is_lock_free