Apple のドキュメントによると、アトミック操作は競合するスレッドをブロックしません。しかし、競合するスレッドをブロックせずに値全体を返す/設定するにはどうすればよいでしょうか。たとえば、スレッド 3(T3) がゲッターの途中にある場合、スレッド 1 とスレッド 2 の両方がセッター メソッドを呼び出した場合 (競合するスレッドをブロックしないため、T1 と T2 の両方がセッター メソッドに入ることが許可されているため)、無効な値を返しませんか?
私は原子性について例を挙げて説明している多くの Web サイトを調べてきました。例では @synchronized(self) セッターとゲッターを使用しています。@synchronized() は、一度に 1 つのスレッドだけが他のスレッドをブロックしてセッターを実行できるようにしないのですか?