3.8.3 原子交换和条件交换
swap AMO将在远程PE的目标操作数与其参数列表的值操作数交换,并将AMO之前的目标值返回给主动PE。条件交换AMO(cswap)将测试目标操作数,如果与条件参数相等,参数列表的值操作数将替换目标的值。在上述两种情况下,在AMO之前的目标值都会返回给主动PE。如取–加和取–递增操作,swap操作符的返回隐含了比add和inc AMO更强的顺序。如其他AMO,swap AMO有时被用于触发被动端的wait函数。代码清单3-24展示了swap AMO的使用,其中奇数的PE在其继承者的对称内存中执行swap,并打印取回值。注意swap提供所有必要的同步。