OS의 Bit(32, 64)수와 사용하는 메모리 용량에 따라 생성할 수 있는 Thread 수는 차이가 있습니다
Thread 하나당 1MB를 차지 한다고 보면, 4GB의 메모리를 사용할 경우 2GB정도는 이미 사용중일 것이고
나머지 2GB정도에 약 2000개 정도의 Thread를 생성할 수 있습니다.
그러나 질문 내용을 보면 Thread 에서 도스 프로그램을 따로 호출 하는 것 같은데요
그러면 Thread 하나가 차지하는 메모리 용량이 꾀 많을 것 같습니다.
Thread 수가 문제가 아니라 Thraed당 차지하는 메모리가 문제인것 같습니다.
뽀뽀중 님이 쓰신 글 :
: 안녕 하세요
:
: 프로그램에서 입력자료를 만들고 도스프로그램을 실행 합니다.
: 다만 경우의 수가 너무 많아서 (몇천건), 도스프로그램을 thread를 사용하기로 했습니다.
:
: thread 실행후
: join() 을 사용해서 종료를 기다리니, 완료시간이 큰 차이가 없어서...
:
: 도스프로그램이 계산완료후 자동 종료되기 때문에, 종료를 기다릴 필요가 없어서, detach()를 사용했습니다.
: 그러다 보니, 스레드가 몇백개 동시에 실행이 되는 경우가 종종 발생을 하고, 이럴 경우 프로그램이 다운이 되었습니다.
: 쉬운 해결방법이 없다면, thread를 8개만 실행해서 join()으로 도스프로그램 종료를 기다리게 하려고 합니다.
:
:
: thread 사용할때, thread 갯수 제한이 어떻게 되고, 저와 같은 문제가 발생할 경우 보통은 어떻게 해결 하나요?
:
:
:
|