thread

    프로세스와 스레드(Process vs Thread)

    프로세스 (Process)개념 : 리눅스 등의 멀티 프로세싱 운영체제에서 실행 중인 프로그램에 대한 인스턴스자원 : 자신만의 고유 공간과 자원을 할당받아 사용코드, 데이터, 스택, 힙 영역을 고유하게 가짐 스레드 (Thread)개념 : 한 프로세스 내에서 동작되는 여러 실행의 흐름자원 : 다른 스레드와 공간과 자원을 공유하여 사용코드, 데이터, 힙 영역을 공유 장점시스템의 throughput이 향상프로세스 간 통신 방법에 비해 스레드 간의 통신 방법이 훨씬 간단하다.전역 변수를 이용하여 규현프로그램의 응답 시간이 단축시스템의 자원 소모가 줄어듬단점미묘한 시간 차나 잘못된 변수를 공유함으로써 오류가 발생할 수 있음프로그램 디버깅이 어려움단일 프로세서 시스템에서는 효과를 기대하기 어려움 컨텐스트 스위칭 (C..

    적정 스레드 수

    적정 스레드 수치라는 것을 잡는다는게 어렵다.다음은 [1]에서 본 것으로 윈도우즈 네트워크 프로그래밍이란 책에서 추천하는 스레드의 수라고 한다. 스레드 개수 = ( 프로세스 개수 X 2 ) + 1 스레드 개수 = ( 프로세스 개수 X 2 ) + 2 성능 및 안정성에서 위에 수치가 적정하다고 본다.하지만 최상의 성능을 끌어내기 위한 수치는 아니라고 본다. 적정 스레드 수치가 아닌 최상의 스레드 수치를 끌어내려면하드웨어 성능과 소프트웨어의 시스템 설계를 고려해서 정해야만 한다. JBoss 경우에는 512개, Netty의 경우에는 코어의 수만큼이 되어 있다.Netty가 가지고 있는 스레드 이 기본값(코어의 수)은 스레드가 CPU를 100% 사용한다고 할 때의 수치이다.만약 각 스레드가 CPU를 10%사용한다면..