|
fbpsok 님이 쓰신 글 :
: CriticalSection 과 Synchronize 의 차이가 뭔지 궁금해서요.
: CriticalSection 도 만약 한쪽이 작업을 이미 점유해버리면
: 다른한쪽은 이미 점유한 작업이 끝날때까지 기다려야 하는것 같은데.
: Synchronize 도 그런의미 인것 같고
: 정확히 이 둘의 차이를 좀 알고 싶습니다.
여기서 Synchronize라는것이 TThread내에 있는 메소드 얘기를 하시는것인지..??
암튼..
일반적인 동기화(Synchronize)라는 것은 여러개의 쓰레드가 동시에 돌아갈때
문제가 생길수 있는 부분에서 각각의 쓰레드간의 진행 순서를 결정하기 위해 사용하는겁니다.
쓰레드 동기화를 위해서 사용하는것이
위의 CriticalSection, Event, Mutex, Semaphore 등등 기능이 있고
윈도즈에는 없지만 다른 OS에는 MessageQueue도 사용합니다.
어쨌든.. 기본은 Event이며 나머지 방법은 이를 이용해서 구현한 걸로 알고있습니다.
어쨌든 각각의 기능이 다르니 필요에 따라 사용하시면 되구요.
그리고
TThread 클래스내에 있는 Synchronize메소드는 일반 작업 쓰레드와 GUI쓰레드를
동기화시키기 위해 사용합니다.
즉.. 여러개의 쓰레드가 동시에 GUI리소스에 접근하는것은 막는다고 보시면 되죠.
조금 이해가 되셨는지 모르겠네요.
그럼.. 즐프하세요. ^^
|