|
음... 빌더의 VCL에서는 크리티컬섹션이나 뮤텍스를 설정하고 해제하는 루틴은 상당히 시간 (CPU 타임)을 잡아먹게 되죠..
코드마다 모두 크리티컬섹션(혹은 뮤텍스)를 설정하고 해제하는 코드를 추가해주는 것은 오버헤드가 너무 크기 때문이져...
하지만 싱크로나이즈 즉 동기화를 통해 VCL에서도 이렇게, 멀티쓰레드 환경에서 쓰레드를 안전하게 사용하는 방법이 있어요 바로 TThread 클래스인데요. TThread를 상속받는 클래스를 만들어서 그 안에서 별도의 쓰레드를 구현하면, TThread의 멤버함수인 Syncronize()를 통해 VCL을 사용하는 함수도 안전하게 호출할 수 있습니다.
|