#. 정의
- 운영 체제에서는 프로세스를 사용하여 실행 중인 다양한 응용 프로그램을 구분하는데 스레드는 운영 체제에서 프로세서 시간을 할당하는 기본 단위 입니다. 두 개 이상의 스레드가 해당 프로세스 내에서 코드를 실행할 수 있습니다. 각 스레드에서는 예외 처리기와 스케줄링 우선 순위, 시스템에서 일정을 잡을 때까지 스레드 컨텍스트를 저장하는 데 사용되는 구조 집합을 유지 관리합니다.
- 하나의 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말합니다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있는데 이러한 실행방식을 Multithread(멀티 스레드)라고 합니다. 스레드가 여러개 실행될 경우 스케줄러는 각 스레드에게 시간을 할당하여 실행함으로써 사용자가 보기에 여러 스레드가 동시에 실행되는 것 처럼 보이게 됩니다.
#. 특징
- 각 스레드는 독립적인 Stack(스텍)을 가집니다.
- 코드 영역을 공유합니다.
- 데이터 영역 및 힙 영역을 공유합니다.(전역변수와 동적 할당된 메모리 공간도 공유가 가능합니다.)
- 프로세스 핸들 테이블을 공유합니다. 프로세스 핸들 테이블에 대한 핸들 정보는 프로세스 내의 쓰레드들에게 공유되어 각 스레드가 그 핸들에 대해 접근이 가능합니다.
※ 결국 같은 프로세스 내의 스레드들은 스텍 이외의 모든 것을 공유하게 됩니다.
'스레드'에 해당되는 글 1건
- 2010.03.31 Thread(스레드)
C++2010. 3. 31. 11:04