Thread(쓰레드) - 프로세스내에서 동시에 실행되는 독립적인 실행 단위를 말함, 장점으로는 자원을 많이 사용하지 않고 구현이 쉬우며 범용성이 높다
                                   

Process(프로세스)운영체제에서 실행중인 하나의 프로그램(하나 이상의 쓰레드를 포함한다.)

Thread 장점

- 빠른 프로세스 생성

- 적은 메모리 사용

- 쉬운 정보 공유

Thread 단점

- 교착상태에 빠질 수 있다.

* 교착상태 - 다중프로그래밍 체제에서 하나 또는 그 이상의 프로세스가 수행 할 수 없는 어떤 특정시간을 기다리고 있는 상태.

Thread와 Process 차이

여러 분야에서 '과정' 또는 '처리'라는 뜻으로 사용되는 용어로 컴퓨터 분야에서는 '실행중인 프로그램'이라는 뜻으로 쓰인다. 


이 프로세스 내에서 실행되는 각각의 일을 스레드라고 한다. 프로세스 내에서 실행되는 세부 작업 단위로 여러 개의 스레드가 하나의 프로세스를 이루게 되는 것이다.


Thread와 Process의 차이부터 논해야 한다. Process와 Thread의 차이는 신입이나 사회 초년생 개발자들이라면 면접 때 한두번은 들어본 질문일 것이다.
Thread는 Process와 거의 유사하다. 단지 Thread는 컴퓨터의 자원, 예를들면 메모리와 IO 장치들을 Thread끼리 공유하고, Process는 독립적으로 OS로부터 할당받아 사용한다. 일반적으로 Process는 여러 Thread를 Invoking 시키고 관리한다. 어플리케이션이 실행될 때 한개의 Process가 발생을 하고 그 Process가 어떠한 일을 할 때 컴퓨터의 자원을 최대로 활용하기 위해서는 병렬적으로 일을 하게 만들어야 한다. 그러므로 Thread를 이용해서 컴퓨터의 놀고 있는 자원들을 최대한으로 사용하게 만드는 것이 Multi-Thread Programming의 영역이다. I/O를 기다리게 하지 않고 다른 일을 하게 하거나, 놀고 있는 여분의 CPU 코어들을 최대한 사용하게 하는 것이 핵심이다.

+ Recent posts