步骤 1.读旧值(即从系统内存中读取所要使用的变量的值,例如:读取变量i的值)
步骤2.求新值(即对从内存中读取的值进行操作,但是操作后不修改内存中变量的值,例如:i=i+1,这一步只进行i+1,没有赋值,不对内存中的i进行修改)
步骤3.两个不可分割的原子操作
第一步:比较内存中变量现在的值与 最开始读的旧值是否相同(即从内存中重新读取i的值,与一开始读取的i进行比较)
第二步:如果这两个值相同的话,则将求得的新值写入内存中(即:i=i+1,更改内存中的i的值)如果这两个值不相同的话,则重复步骤1开始
注:这两个操作是不可分割的原子操作,必须两个同时完成
网友评论