???????е??????????????????????????????????????????????????????????????????????????????????????????????????????????????κ???????????κ????????????????????????????????????????????д??

????????????????????????????????????????£?

????1???????????????????????????????????????????????????

????2????????????????????????????????ɡ?

??????????????????棬windows????????????????????????????

??????????μ??????????????????????

??????????????????????????й????ν???????????????????????????????????????????????????????????????????

????????????????a=0??????????????????????????a++????????????????????a?????????????????????????????

????A++???????????????д???

Mov eax ??[a]
Inc eax
Mov [a]??eax

????????????????????£?????????????У?

Mov eax ??[a]
Inc eax
Mov [a]??eax
Mov eax ??[a]
Inc eax
Mov [a]??eax

????a?????2???????????????

????????????windows???????????????????????κ????????????????????????????????????????????У?

Mov eax??[a]
Inc eax
Mov eax??[a]
Inc eax
Mov [a]??eax
Mov [a]??eax

????????????????????У?a??????????1????????2???????????????顣?????????????????windows???????п????????????????????????ó??????????

????????????????????????????????????????????????????????????Interlocked??к??????????????????????????????Щ????????????????????????

LONG InterlockedExchangeAdd(
  PLONG volatile plAddend??
  LONG lIncrement);
LONGLONG InterlockedExchangeAdd64(
  PLONGLONG volatile pllAddend??
  LONGLONG llIncrement);

?????????????????????????????α??????????????????????????????????????????????е??