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