2008. 10. 3. 22:18
[강의정리] 윈도우에서 Thread 생성할 수 있는 API는 어떤것이 있나?
2008. 10. 3. 22:18 in 프로그래밍 세계/Windows Programming

출처 : 신경준씨 사외교육 http://blog.naver.com/process3/20052147545
•[1] CreateThread() API 사용
순수한 Win32 API를 이용해서 프로그램을 작성할때 사용하는 API
5개의 인자값을 가진다.
•[2] _beginthread()/_beginthreadex() CRT를 사용
CRT(C RunTime Library)를 사용할 경우에 이용하는 API
CRT(C RunTime Library)를 사용할 경우에 이용하는 API
•[3] AfxBeginThread() MFC 함수 이용
MFC응용 프로그램을 만들때 사용하는 API이다. AfxBeginThread() 함수 내부에서 CWinThread class를 이용해서 Thread를 생성한다. 그런데 CWinThread 클래스 내부에서는 _beginthreadex함수를 호출해서 스레드를 만든다.
=> 쓰레드 생성시 [2][3]의 방법은 결국 [1]함수를 호출하게 된다.
일반적인 경우 [2]방법을 쓰고 mfc에서는 [3]을 주로 사용한다.
CRT를 사용할 경우 CreateThread함수를 사용하게 되면
DeadLock의 위험이 있기 때문이다.
=> Tread stack size의 디폴트로 1M가 잡히는 유저모드가 2GB이니까
총 2000MB/ 1MB 이므로 2000개의 쓰레드 생성이 가능하다.
이론적으로는 그러한데...실제로는 그렇게까지 생성할 일도 없고
생성하는 것 자체가 문제가 있을 것이다.