본문 바로가기
컴퓨터

< 스레드(Thread) >

by 루이보스 스타 2008. 12. 3.

< 스레드(Thread) >
윈도우즈 95의 작업 스케줄러는 시분할 방식을 이용하여 CPU의 사용 권한을 할당한다. 이때 스케줄러에 의해 시간을 배정받아 CPU에서 작업할 수 있는 단위가 바로 스레드이다.
스레드는 프로그램 코드를 실행하는 단위로 프로세스에 할당된 메모리 영역에서 실행되며 프로세스에 할당된 시스템 리소스를 공유하게 된다. 참고로 윈도우 95의 인터럽트 간격이 20ms이니 이론적으로 1초에 50개의 스레드를 수행할 수 있다.
스레드를 생성할 때 사용되는 Win32 API에는 CreateThread()가 있고, 종료하는 함수에는 ExitThread(), TerminateThread()가 있다.
탐색기를 예로 들어 보자. 탐색기는 각 저장장치에 있는 디렉토리나 파일을 찾아 그 목록을 사용자에게 표시해주고 관리하는 역할을 한다. 이를 위해서는 기본적으로 디렉토리나 파일을 찾는 루틴과 그 결과를 화면에 출력하는 루틴이 필요할 것이다. 이 두 가지 기능만 놓고 생각해보면 다음과 같이 비교할 수 있다.
만약 탐색기가 싱글 스레드로 만들어져 있다면, 하드 디스크의 탐색이 다 끝난 후에야 결과
가 화면에 출력될 것이다. 즉, 하드디스크를 탐색하는 동안 사용자는 먼 산을 바라보며 결과가 출력될 때까지 기다려야 한다.
따라서 두 개의 스레드를 만든다면 탐색 작업과 출력 작업이 병행하면서 CPU를 점유하기 때문에 사용자가 기다리는 시간을 최소화할 수 있다. 하나의 프로그램에서 다중 작업을 해야 할 경우 개별 스레드로 만들어 처리하는 것이 시간이나 리소스 사용 측면에서 효율적이다. 즉 하나뿐인 CPU를 보다 효율적으로 사용하기 위한 것이 스레드의 목적이다.

'컴퓨터' 카테고리의 다른 글

Sysfader 오류 처리 방법 (또 하나의 방법)  (0) 2009.06.27
< FTP (File Transfer Protocol) >  (0) 2008.12.03
< MDI (Multiple Document Interface ) >  (0) 2008.12.03
< 펜(Pen) 오브젝트 >  (0) 2008.11.28
< 파일 탐색 관련 함수 >  (0) 2008.11.26