Thread(스레드)

ai_lim·2022년 2월 23일
0

스레드를 알아보기전 예시로 워밍업하고가자!

음식을 만드는 프로그램이 있다. 요리사는 맛있는 음식을 만드는 프로세스를 진행할 것이다. 밥짓기, 재료볶기, 끓이기 등등 세분화된 작업을 스레드라고 생각하면된다.

프로세스 내에서 실행되는 흐름의 단위를 스레드라고 한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만 둘 이상의 스레드를 동시에 실행하는 멀티스레드라고 한다.

멀티프로세스 VS 멀티스레드

멀티프로세스와 멀티스레드는 여러 흐름이 동시에 진행된다는 공통점을 가지고 있다.

하지만 멀티프로세스에서 각 프로세스는 독립적으로 실행되며 각각 별개의 메모리를 차지한다.
멀티스레드는 프로세스 내의 메모리를 공유해서 사용한다.

왜 멀티프로세스로 할 수 있는 작업을 하나의 프로세스에서 스레드로 나눠가며 할까??

자원의 효율성때문이다. 프로세스 간 전환 속도보다 스레드 간의 전환 속도가 빠르며, CPU가 여러개일 경우 각각의 CPU가 스레드 하나씩 담당하여 속도를 높일 수 있다. 그렇지만 스레드 중 어떤 것이 먼저 실행될지 순서를 알 수 없고 하나의 스레드가 문제를 일으키면 전체 스레드가 종료될 위험을 가지고 있다.

0개의 댓글