/**
* Atomically update Java variable to <tt>x</tt> if it is currently
* holding <tt>expected</tt>.
* @return <tt>true</tt> if successful
*/
public final native boolean compareAndSwapObject(Object o, long offset,
Object expected,
Object x);
1)Как они "атомарно" устанавливают значение "o" в позиции "offset" на "x " если "значение==ожидаемое"?
2)Как они "блокируют" объект, когда мы используем синхронизированный метод или синхронизированный блок? Мне просто интересно узнать, что там под капотом.