Swap 也叫Exchange或是XCHG,也是硬體支援的指令,邏輯跟TestAndSet一樣。 缺點: 不滿足讓權等待 func Swap(a *bool, b *bool) { *a, *b = *b, *a } lock, old := false, true for old { Swap(&lock, &old) } // critical section lock = false