|
xen 님이 쓰신 글 :
:
: 안녕하세요~
:
: critical section 은 멀티 프로세서에선 사용을 금하고 있습니다.
:
: 그러면 Synchronize 이놈은 가능한지요...
:
: 즉 프로세서가 2개 이상인곳에서도 Synchronize이놈을 사용해도
:
: 안정적으로 동기화를 시켜주는지 궁굼합니다
:
: 만약 Synchronize 이놈이 Critial section을 base로 코딩을 한거라면
:
: 멀티 프로세서에선 사용이 않될것 같은데..
:
: 즐거운 하루 되십시요..
TThread::Synchronize()는 Critical section이 아니라 메시지 루프를 이용한 방식입니다.
그래서 콘솔 프로그램에서는 사용할 수 없죠.
빌더에는 WIN32 API의 CriticalSection 관련 함수들을 Wrapping한 VCL 클래스로 TCriticalSection 가 따로 있습니다.
하여튼, 멀티프로세서 시스템에서 돌아가는 콘솔 프로그램에서 동기화를 하려면
세마포어(semaphore)나 MUTEX(너무 느림)를 쓰는 방법밖에는 없군요.
|