Ответ 1
Чтобы иметь тупик в программе, вам нужно удерживать одновременно более одного замка. Доступ или изменение переменной std::atomic<T>
может получить блокировку в соответствии со стандартом С++ 11, но он освобождает блокировку, как только вызов функции завершен, и он не вызывает какую-либо определенную пользователем функцию, удерживая блокировку, поэтому вы не можете имеют ситуацию, когда два (или более) мьютекса блокируются одновременно; следовательно, при std::atomic
внутренних заблокируемых объектах не существует взаимоблокировки.