CS

Thread

Thread

thread은 실을 의미하는 단어입니다. 하지만 컴퓨터공학에서의 thread는 실과는 전혀 관련이 없습니다. thread의 사전적 의미는 다음과 같습니다.

어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위

이와같이 thread는 실과는 관련이 없지만 뭔가 흐름과 전혀 연관이 없진 않아 컴퓨터공학에서 thread라는 단어를 사용한 것 같습니다.

Thread란?

thread란 하나의 프로그램 내에서 여러 개의 실행 흐름을 두기 위한 모델입니다. thread는 컴퓨터 내부에서 존재하는 실행 코드로 프로세스는 단순한 껍데기이고 실제 작업은 thread가 담당합니다. 프로세스 생성 시 하나의 주thread가 생성되고 주thread가 종료되면 프로세스도 종료하게 됩니다. 프로세스는 CPU에 대한 사용권을 운영체제로부터 확보하고 CPU에게 처리사항을 요청하는데 이때 프로세스가 멀티 thread화 되어 있다면 요구사항을 분할하여 CPU에게 요청하고 다중 코어를 사용하는 CPU에게 분산하여 일을 처리할 수 있습니다.
보통 CPU는 하나의 코어에서 한가지 작업을 처리 할 수 있습니다. 하지만 요즘 멀티코어의 CPU들을 많이 사용하기 때문에 여러 작업을 한번에 수행 할 수 있습니다. 인텔의 일부 CPU들은 하이퍼스레팅(HT)기술을 통해 1개의 코어당 2개의 thread를 갖습니다. 이를 통해 다중 작업을 효율적으로 사용 할 수 있습니다.

현재 제 컴퓨터는 쿼드코어로 4개의 코어로 이루어져있지만 하이퍼스레팅(HT)기술로 8개의 thread를 볼 수 있습니다. 하지만 저전력 설계로 다중작업을 하지 않는다면 4개의 thread를 사용하는 것을 볼 수 있습니다.

공유하기