atomic_set(v,i)
这里的 i 是局部的,不会有共享冲突,只有 v 才是共享访问的。
中的v必须是atomic_t;
typedef struct { volatile int counter; } atomic_t;
"比如要把int32类型的变量 i 设置成 j,必须经过两条指令:
mov eax,j //j是不要紧的
mov i,eax //需要保护的是i
"
volatile 保证直接对 counter内存位置操作,从而保证原子性.