synchronized & lock cmpxchg