My work space/Java

[아시나요?] 쓰레드

schpritz 2008. 8. 14. 16:23

Winamp로 음악을 들르면서 문서 작업을 할수 있가 동시에 인터넷을 동해 자료를 다운로드할 수고 있다 이런 하나하나의 작업을 프로세스라고 하며, 이러한 프로세스가 동시 수행되는 것처럼 처리하는 것을 멀티 프로세싱이라고 한다


예를 들어 3개(winamp, 문서 작업 , 인터넷)의 프로그램이 현재 동작중이라면, CPU를 첫번째 작업에 0.001초만큼 할당하고 두번째 작업에 0.001초만큼을 할당한다. 세번째 작업 역시 0.001초만큼 CPU를 할당해 작업을 처리하는데 , 이러한 모든작업은 아주 짧은 시간 동안에 바뀌고 반복되기 때문에 마치 프로그램이 동시에 실행되는 것처럼 보이는것이다. 그런데 프로세스를 사용하는것은 상당히 부담스러운 작업이 될수밖에없다


프로세스의 이런 단점을 보완하고자 만들어진 것이 바로 쓰레드 인데 , 프로세스에 비해 그 생성이나 제거가 용이하며 메모리를 다른 쓰레드와 공유해 사용할 수 있기 때문에 프로세스에 비해 컴퓨터의 자원을 훨씬 덜 사용하고도 프로그램에서 멀티 프로세싱의 기능을 사용하는것이 가능하다.


정리하면, 프로그램은 하나의 프로세스가 되어 작업을 수행하는 반면에 한 프로그램 내부에서 여러개의 프로세스가 진행되는 경우 이것을 각각 쓰레드라고 말한다