프로그래밍

Thread에대 대한 고찰

jinkwon.kim 2017. 1. 2. 11:19
728x90
반응형

Thread에대 대한 고찰


[1]. Multi Thread를 이용한 개발시 확인 필요사항. 

 1. OS에서 지원하는 Thread의 최대 갯수

 2. Process당 허용가능한 최대 Thread 갯수

 3. Process당 적정 수준의 Thread 갯수

 4. Thread 생성 에러가 나는 경우


[2]. 위 3가지에 대한 확인 방법(Linux 기준)

 1. OS에서 지원하는 Thread의 최대 갯수(OS 전체에서 사용가능한 Threa갯수이다)

  -  cat /proc/sys/kernel/threads-max


 2. Process당 허용가능한 최대 Thread 갯수

  - Linux는 프로세스당 Thread를 제한 하는 것이 아니라. 단지 전체 Thread 갯수만 관리한다.


 3. Process당 적정 수준의 Thread 갯수

  - 바쁜 시스템  : cpu core개수 + 1 

  - 한가한 시스템 : cpu core개수 * 2  


 4. Thread 생성 에러가 나는 경우

  - 시스템 전체의 max thread 값이 높다고 하여도 메모리의 한계로(out of memory) 더이상 thread 생성이 어려울 수 있다.


[3]. Linux에서 Thread 최대 갯수 계산 하는 방법

 max_threads = totalram_pages / (8 * 8192 / 4096);

  

 kernel/fork.c

/* The default maximum number of threads is set to a safe

 * value: the thread structures can take up at most half

 * of memory.

 */

max_threads = mempages / (8 * THREAD_SIZE / PAGE_SIZE);


참조: 

https://kldp.org/node/133227

http://atin.tistory.com/465

http://stackoverflow.com/questions/344203/maximum-number-of-threads-per-process-in-linux

728x90
반응형

'프로그래밍' 카테고리의 다른 글

sqlite3 exec에대한 대체 사용법  (0) 2017.05.17
SourceTree 한글 깨짐 해결( EUC-KR로 설정)  (1) 2017.01.31
인코딩 통일 하기  (0) 2016.12.27
AutoMake 메뉴얼 정리  (0) 2016.12.27
포인터의 개념.  (0) 2016.12.27