La instrucción exchange (a veces llamado read-modify-write) intercambia un registro del procesador con el contenido de una dirección de la memoria en instrucción atómica.
Así se puede realizar la exclusión mutua con
Initially: vi is equal false
C is equal true
Loop:
non-critical section
loop
exchange C and vi ; atomic exchange
if vi equals true exit
endloop
critical section
exchange C and vi