Установление связи происходит до того, как в Java

Я знаю, что есть два способа установить отношения «происходит до того, как» в java: синхронизированные блоки и методы, ключевое слово volatile. (если я прав, это не работает с конечными полями). Мой вопрос: одинаково ли ведут себя атомарные переменные из параллельного пакета? может случается-раньше быть установленным ими?


person void    schedule 24.11.2015    source источник


Ответы (1)


да, они потокобезопасны, и поэтому вы можете определить, что происходит/до и после отношений.

Операции класса AtomicXxxx используют volatile, CAS, атомарное добавление или отложенный/неупорядоченный набор. У всех есть некоторые гарантии безопасности потоков, но они более легкие, чем синхронизированные.

person Peter Lawrey    schedule 24.11.2015
comment
В частности, Javadoc для пакета java.util.atomic обещает, что все объекты AtomicXxxxxxxx работают как volatile переменные с дополнительными функциями. - person Solomon Slow; 24.11.2015