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 una instrucción atómica.
Así se puede realizar la exclusión mutua con
Initially: vi is equal false
C is equal true
a: loop
b: non-critical section
c: loop
d: exchange C and vi ; atomic exchange
e: if vi equals true exit
f: endloop
g: critical section
h: exchange C and vi
i: endloop
Se observa lo mismo que en el caso anterior, no se garantiza una espera limitada. ¿Cómo se consigue? (refTareaExclusionPrácticas).