개요 | ||
Interlocked 류 함수들은 멀티스레드 환경에서 long 타입, 포인터타입의 공유변수들의 단순한 처리(+1, -1,더하기, 대입, 비교대입) 에 있어서 함수 자체에서 스레드 안전을 보장한다. Interlocked 함수들의 내부처리는 Atomic Operation 으로 이뤄지며, Atomic Operation이 "interrupt 당하지 않는(같은 말 : 컨텍스트 전환 이 생기지 않는) 처리 "이므로 함수처리 완료시까지 다른 스레드의 침범을 받지 않게됨.
코드예를 보면, 아래 예1의 비안전 코드를 예2처럼 InterlockedIncrement 라는 함수 사용하는것 만으로도 전역변수 gCount 는 thread safety 해진다. 비교 : 아래 gCount++; 구간을 크리티컬 섹션(상세보기->http://igotit.tistory.com/545 )으로 지정해도 thread safety 가 달성되나 아래예제 코드가 훨씬 좋다.
| ||
|
interlocked. 함수들 전체. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|
본 글이 포함된 상위 정리 장소.
Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11
|
///546
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
Chart Director for C++ 개요, 설치. 설정. (0) | 2016.01.15 |
---|---|
MFC 체크박스 사용하기. (0) | 2016.01.15 |
Thread Local Storage(스레드 로컬 스토리지) (0) | 2016.01.12 |
MFC Collection Class. CArray, CList, CMap, ... (0) | 2016.01.04 |
ATL Collection Classes (0) | 2015.12.28 |
댓글