Q: If 2 threads executes it, which object will get stored in the atomic reference?
Никто не может знать.Согласно javadoc , одному из них.
In a multi-processor machine, 2 threads could be performing the CAS in the same clock cycle.
AFAIK, глобальных часов для текущих многоядерных процессоров Intel / AMD не существует.
One of them must fail, but will myStatus be false in that thread?
Это должно бытьиначе это означало бы, что это удалось, и весь java.util.concurrent развалился бы на части.Я совершенно уверен, что myStatus
в одном потоке должен быть ложным, даже если оба пытались поместить туда один и тот же объект.
I guess one hardware implementation of CompareAndSwap would make the threads queue up to do their updates.
Я бы не сказал «очередь» (это звучит как-товыполняется ОС), инструкция CAS будет задерживаться аппаратными средствами.