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
[59965] Re:Re:감사합니다..
용맨소녀 [doyongid] 891 읽음    2010-01-25 22:59
이제 좀 개념이 잡히는 것 같습니다.. ㅠㅠ 도움주셔서 감사합니다..

둘리.CSIEDA 님이 쓰신 글 :
: Sync 와 Critical Section이 어떻게 process를 멈추는지를 잠깐 설명 드릴께요.
:
: thread는 각자 하나의 process 입니다. 이 process는 제각각 돌겠죠.
: 돈다는것은 c 코드에서 본다면 수행 라인을 하나하나 수행해 나간다는 뜻입니다.
:
: 이러다가 sync 나 Critical Section에 오면 앞서 온 프로세스가 sync 를 걸었는지 또는 critical section으로 들어 갔는지 확인합니다. 만약에 앞선 process 가 sync 또는 critical section을 점유하고 있으면 뒤따르는 thread들은 진입을 못합니다.
:
: 이러한 상황을 생각해보죠.
:
: 프로세스1 이 (thread1) 이 ado 로 데이터를 주고 ado 가 서버랑 통신을 합니다. sync 나 critical 을 걸지 않은 상태라고 가정해보조
:
: 뒤따르는  프로세스2는 ado 까지 갑니다. 통신 이전까지 select 구문이나 기타 뭔가 준비해야겠죠.
: 여기까지 갑니다. 그러한 ado 자체의 어떠한 특성을 바꾸는 것이 ado가 통신중에 일어나고 해당 property 들을 ado가 통신중에 사용한다면.. 어떻게 될까요..
:
: 오류가 날 수 있죠.
:
: thread process는 이렇게 sync 나 critical 진입부분에서 멈추게 됩니다.
:
: 그러므로 ado를 access하기전에 sync를 걸어 블럭을 해주셔야 합니다.
:
:
:
: 용맨소녀 님이 쓰신 글 :
: : 예전에 Indy9의 OnExecute에서 ADO쓸때 동기화에 관한 질문을 했었습니다. ADO호출시 Synchronize를 해야한다는 것이었는데요.. (전 OnExecute이벤트가 하나씩 순차 호출되는걸로 잘못 알고..ㅡ.ㅡ)
: :
: : 그럼... 패킷쪽도 같은 식으로 처리해야 하는거란 뜻인데요.. 그런거라면 Synchronize같은거 안쓰고 아예 패킷처리부를 크리티컬 섹션으로 덮어야하는게 깔끔하지 않나 생각됩니다. DB는 큐를 쓰면 될거고요..
: :
: : 예를 들어서.. 이렇게 한다면 대충 무난할까요? 지금 만드는건 패킷이 띄엄띄엄오는 거라 성능은 신경안쓰고 만들고 있지만.....
: :
: : 암튼, 아래 방식으로 한다면 크레이지아케이드류같은 게임에서 1000명은 커버할려나요? ^^
: :
: : 경험많으신 고수님들 답변 부탁드립니다..
: :
: : void __fastcall TWin_Main::ServerExecute(TIdPeerThread *AThread)
: : {
: :     EnterCriticalSection(&Cs);
: :     ProcessPacket(AThread); // 이 안에서 DB 관련은 큐로 처리..
: :     LeaveCriticalSection(&Cs);
: : }

+ -

관련 글 리스트
59952 Indy9에서 OnExecute 이벤트 내부의 동기화(?) 용맨소녀 1114 2010/01/25
59958     Re:Indy9에서 OnExecute 이벤트 내부의 동기화(?) 둘리.CSIEDA 1580 2010/01/25
59965         Re:Re:감사합니다.. 용맨소녀 891 2010/01/25
59953     Re:Indy9에서 OnExecute 이벤트 내부의 동기화(?) 둘리.CSIEDA 1582 2010/01/25
59956         Re:Re:친절한 답변 감사드리고요.. 또 생기는 궁금증이.. 용맨소녀 1266 2010/01/25
59957             Re:Re:Re:친절한 답변 감사드리고요.. 또 생기는 궁금증이.. 둘리.CSIEDA 1279 2010/01/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.