System2008. 11. 25. 15:40
인터락 함수는 크리티컬 섹션보다 더 사용하기 쉽습니다 --;


InterlockedIncrement 함수는 전달된 인자의 값을 1 더해주는 함수입니다.
1 줄이는 함수는 InterlockedDecrement 구요.
  1. LONG InterlockedIncrement(  
  2.   LONG volatile* Addend  
  3. );  
  4.  
  5. LONG InterlockedDecrement(  
  6.   LONG volatile* Addend  
  7. );  

volatile 이라는 키워드가 있죠.
이것은 "코드 최적화를 수행하지 말 것" "메모리에 직접 연산하라(캐쉬하지 말것)" 효과를 가지고 있습니다.

이 함수들 외에도 64비트 기반의 인터락함수, InterlockedIncrement64, InterlockedDecrement64 같은 함수들도 있구요.
해당 포인터의 값을 변경하는 InterlockedExchangePointer 함수도 있습니다.

Posted by skensita