Может кто-нибудь, пожалуйста, уточнить мои сомнения в AtomicReferences. В качестве модели памяти java-памяти, читаемой &, записи ссылок всегда являются атомной операцией независимо от 32-разрядной или 64-разрядной машины. Итак, в каком сценарии использование AtomicRefernce будет полезно.Зачем использовать AtomicRefernce при чтении и настройке простой справки уже является атомной операцией
1
A
ответ
0
Есть другие операции, предоставляемые AtomicReference, которые нельзя использовать с нормальными ссылками.
Например, чтобы убедиться, какое значение вашей замене:
ref.compareAndSet(expectedCurrentValue, newValue);
Чтобы получить последнее значение и заменить чем-то другим:
oldValue = ref.getAndSet(newValue);
С AtomicReference вы можете сделать эти операции безопасно, даже если несколько потоков пытаются получить доступ к тем же ссылкам.
Смежные вопросы
- 1. Это утверждение является атомной операцией?
- 2. Является ли XMLDocument.Save атомной операцией?
- 3. Является ли waitpid() атомной операцией в Linux?
- 4. C++ 11 при добавлении атомной переменной и присвоении ее другому значению, является ли это атомной операцией?
- 5. Является ли доступ к переменной в C# атомной операцией?
- 6. Как работает варп с атомной операцией?
- 7. Есть ли разница между «мьютексом» и «атомной операцией»?
- 8. Является ли простой геттерный вызов для изменчивой переменной атомной операции?
- 9. При настройке схемы MySQL зачем использовать определенные типы?
- 10. Ошибка MSBuild при разрешении справки COM. Зачем?
- 11. Является ли DbContext дорогостоящей операцией?
- 12. Как переключить булевское поле в одном документе с атомной операцией?
- 13. Является ли сравнение 2-х атомной операции?
- 14. Простой запрос справки Javascript
- 15. Зачем нужна ошибка при настройке драйвера PhantomJS?
- 16. Является ли встроенная функция атомной?
- 17. Является ли блокировка (резьбовая) атомной?
- 18. Новое пространство линии теряется при чтении и настройке содержимого
- 19. Является ли BufferedReader.readLine() над Socket блокирующей операцией?
- 20. Является ли чтение/запись объекта из сеанса in-proc атомной операцией?
- 21. Зачем решать зависающие ситуации при настройке?
- 22. Является ли чтение двойной атомной операции в Linux?
- 23. Зачем блокироваться при чтении из словаря
- 24. Обновление атомной и условной карты
- 25. java.io.IOException: RandomAccessBuffer уже закрыт при чтении PDPage
- 26. Когда использовать и при чтении ввода
- 27. Создание справки по настройке веб-службы - ASP.NET?
- 28. Является ли context.executeQueryAsync транзакционной операцией?
- 29. Является ли window.location неблокирующей операцией?
- 30. Зачем использовать Node.js EventEmitter вместо простой функции?
Вы посмотрели на Javadoc AtomicReference? Вы найдете ряд методов, которые позволят вам делать другие вещи, а не просто изменять значение ссылки. Это полезно для этих методов. –
@TheLostMind Вопрос не дублируется в этом другом. Названия говорят о том, что, но спрошено другое. В другом вопросе не упоминается модель Java-памяти. –
@ DanielSperry - [this] (http://stackoverflow.com/questions/281132/java-volatile-reference-vs-atomicreference?rq=1) также поможет OP. Связанный с этим вопрос (и связанные с ним) поможет ОП. Если OP имеет более * специфический * вопрос, я его повторно открою – TheLostMind