AtomicBoolean использует собственный код для синхронизации. Как это переводится в java locks?AtomicBoolean, где находится замок?
что разница между:
AtomicBoolean a = new AtomicBoolean();
synchronized (a) {
a.set(true);
}
против:
a.set(true)
Я знаю, что синхронное (а) не требуется, поскольку само по себе гарантирует, что операция является атомарной. Но является ли синхронизация синхронизированной (a) той же блокировкой, что и в a.set (true)?
Да, но по-прежнему отличается, он не синхронизируется с объектом, как замок, он использует внутреннюю инструкцию JVM. – morgano
@mogano Я никогда не говорил, что он взял объект в качестве замка. CAS реализуется с помощью класса 'Unsafe' с помощью метода' native'. – Jeffrey
Предоставлено, но я сосредоточился на вопросе в конце сообщения (независимо от того, были ли они одним и тем же замком). – morgano