C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38155] Re:[참고] CriticalSection을 항상 사용할 필요가 있을까 ???
구철회 [] 1037 읽음    2004-11-25 15:32
Critical Section은 그 안에 하고 하는 일을 Atomic 하게 하고 싶을 때 사용합니다.

int 값은 경우 1 WORD이므로 프로세서에서 Atomic하게 처리되므로 굳이 Critical Section이 필요없습니다.

그러나 다수의 배열을 갱신하고 자 할때에는 Critical Section이 필요하리라 봅니다.

필요한 경우는 아마 배열이 갱신되고 있는 동안 그 배열을 사용하는 것은 Data Integrity에 손상을 가져오는 동작같은 것이 되겠지요.

예를 들어 어떤 사람이 DB에 전화번호를 011-111-1111로 저장했는데 이 정보를 011-333-3333으로 바꿀려고 하는 있는데 시스템 관리자가 백업을 한다고 바꾸고 있는 중간에 저장을 해버리면 011-113-3333으로 백업이 될지도 모르는 상황이 발생될 수도 있겠죠.

참고로 아래와 같은 실험에서,

: 1번 쓰레드에서 s라는 변수에 0x2040을 넣었다.
: 2번 쓰레드에서 s라는 변수에 0x3060을 넣었다. 

32 bit 프로세서에서는 1 WORD(= 32 bit)를 한번에 메모리에서 읽기 때문에 Atomic합니다. ^^

+ -

관련 글 리스트
38112 [참고] CriticalSection을 항상 사용할 필요가 있을까 ??? 박영목 963 2004/11/20
61149     Re:[참고] CriticalSection을 항상 사용할 필요가 있을까 ??? 박영목.월천 984 2010/05/22
38155     Re:[참고] CriticalSection을 항상 사용할 필요가 있을까 ??? 구철회 1037 2004/11/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.