출처 : http://blog.naver.com/j6040148/120015939753 | |
윈도우즈 자체의 한계가 있는 것이 아니다. 일반적으로 스레드의 스택 사이즈때문에 생기는 문제이다. 일반적으로 HANDLE h = CreateThread(NULL, 0, ThreadProc, NULL, 0, &id); 위의 방식으로 스레드를 생성하면 1MB 의 스택크기를 갖게된다. 스레드 2000개면 1MB * 2000 = 2GB 의 메모리가 필요하다. 2GB 는 user mode 프로그램이 사용할수 있는 한계이다. 고로.. 스택사이즈를 HANDLE h = CreateThread(NULL, 4096, ThreadProc, NULL, STACK_SIZE_PARAM_IS_A_RESERVATION, &id); 위처럼 하면, 13000 개의 스레드까지 생성가능하다. 자세한 내용은.. 마이크로소프트의 윈도우즈 개발팀 멤버 레이먼드 첸의 아래 블로그를 참조 http://blogs.msdn.com/oldnewthing/archive/2005/07/29/444912.aspx |
윈도우즈에서 process 당 2000 개 thread의 한계가 있나??
Tip&Tech
2006/08/24 19:28
글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다
덧글을 달아 주세요