line 4: 对lock->slock自减,这个操作是互斥的,LOCK_PREFIX保证了此刻只能有一个CPU访问内存
line 5: 判断lock->slock是否为非负数,如果是跳转到3,即获得自旋锁
line 6: 位置符
line 7: lock->slock此时为负数,说明已经被其他cpu抢占了,cpu休息一会,相当于pause指令
line 8: 继续将lock->slock和0比较,
line 9: 判断lock->slock是否小于等于0,如果判断为真,跳转到2,继续休息
line 10: 此时lock->slock已经大于0,可以继续尝试抢占了,跳转到1
line 11: 位置符