[Thread] 스레드에 대해서

ziwww·2024년 2월 21일
0

IT

목록 보기
6/9

프로세스(Process)

  • 운영체제로부터 자원을 할당받은 작업의 단위

스레드 (Thread)

  • 프로세스가 할당받은 자원을 이용하는 실행의 흐름

프로그램과 프로세스

프로그램은 윈도우의 exe, 맥북의 dmg와 같이 컴퓨터에서 실행할 수 있는 파일이다.

프로세스는 예를 들어,
Chrome 웹 브라우저(프로그램)를 실행하여 프로그램을 실행하여 돌아가고 있는 상태, 즉 컴퓨터가 무언가를 하고 있는 상태이다.

스레드

스레드는 하나의 프로세스 안에서 진행되는 작업들이다.

예를 들면, Chrome 브라우저를 실행하면 프로세스는 하나만 생성되지만, 영상시청, 파일 다운로드, 쇼핑 등을 동시에 할 수 있다.

이처럼 프로세스 안에서 수행되는 작업을 스레드라고 한다.
스레드가 여러 개 있다면 다중 스레드이다.

프로세스 내부 구조


Code영역
프로그래머가 작성한 소스코드가 기계어 형태로 저장되어있다.

Data영역
코드가 실행되면서 사용하는 전역변수나 static 변수들이 저장되어있다.

Heap영역
생성자, 인스턴스와 같은 동적으로 할당되는 데이터들이 저장되어있다.

Stack영역
함수가 호출되면 Stack영역에 할당되며, 종료되면 소멸한다.
함수에서 사용하는 지역변수도 함께 저장된다.
프로세스에 할당된 메모리보다 Stack영역을 많이 사용하면 stack overflow 에러가 발생한다.

스레드 내부 구조


code, data, heap 영역은 다른 스레드들과 공유한다.
stack영역만 별도로 사용

스레드끼리 자원을 공유하기 때문에 동시 작업이 가능하다.

profile
반갑습니다. 오늘도 즐거운 하루입니다.

0개의 댓글