본문 바로가기

WORK363

MFC Thread 완전정복 3 - 동기화 MFC Thread 완전정복 3 - 동기화Soft-Ware 2007/07/25 15:41 - symmetric multiprocessing ( 대칭 다중 처리,SMP ) 서로 다른 스레드들을 서로 다른 프로세서에 할당해서 동시에 둘이상의 스레드들을 실행한다. 스케쥴러는 다수의 실행 스레드들을 한번에 실행하고 있는 것처럼 만들기 위해 가능한 효율적으로 이들 사이에 cpu시간을 나누는것이 목표이다. - Thread Syncronization ( 스레드 동기화 ) 윈도우즈는 4종류의 동기화 개체를 지원한다. -- Critical Sections -- Mutexes -- Events -- Semaphores 1. Critical Sections ( 임계영역 ) - 가장 간단한 형식의 동기화 개체 - 배타적 ac.. 2008. 6. 2.
MFC Thread 완전정복 2 - Thread 종료하기 --UI Thread call AfxEndThread. post WM_QUIT.( ::PostQuitMessage ) (쓰레드 종료함수 사용시 주의할것은 쓰레드 내부에 메모리를 동적할당(new,malloc)해놓고 delete를 안해서 메모리 릭이 날 염려가 있다. 그래서 가급적이면 쓰레드 함수 리턴으로 종료하는 것이 낫다.) 위의 함수들을 호출한 후 한번 제대로 종료됬는지 확인해보라 DWORD dwExitCode; ::GetExitCodeThread (pThread->m_hThread, &dwExitCode); 만약 여전히 살아 있다면 dwExitCode = STILL_ACTIVE(0x103) 으로 되어 있을테다. - CWinThread 개체 자동 삭제하기 AfxBeginThread 로 스레드 생성할 경.. 2008. 6. 2.
MFC Thread 완전정복 1(펌) Threads and Thread synchronization Threads MFC는 2종류의 쓰레드로 구분할 수 있다. 1. user interface threads 메시지 루프가 존재한다. 윈도우를 만들고 이들 윈도우로 보내진 메시지들을 처리한다. 어플리케이션안에 또하나의 어플리케이션(ui-threads)을 만드는것과 비슷하다.일반적으로 별개로 움직이는 다중 윈도우를 만들때 많이 사용되어 진다. 2. worker threads 직접적으로 메시지를 받지 않고 백그라운드에서 동작되기 때문에 윈도우나 메시지루프들이 필요가 없다. %이 둘간의실질적인 차이는 아직 잘모르겠다. 좀 더 학습하도록 -Creating a Worker ThreadAfxBeginThread함수는 ui-thread,worker threa.. 2008. 6. 2.
728x90