개발은 재밌어야 한다
article thumbnail
Published 2021. 3. 18. 13:41
프로세스와 스레드의 차이 CS
반응형

프로세스와 스레드에 대한 정의

작업 관리자로 확인할 수 있는 현재 프로세스

프로세스: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

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

 

이 두 정의에서 나오는 단어인 프로그램에 대한 정의를 내려보면 다음과 같다

프로그램이란, 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말한다.

 

프로그램은 살아있지 않은 상태. 즉 보조 기억장치(하드디스크, SSD)에 존재하며 실행을 기다리는 명령어(코드) 예로 .exe파일과 같은 하나의 실행할 수 있는 데이터의 묶음이다.

 

 

한가지 상황을 상황을 생각해보면 .exe로 되어있는 실행파일 프로그램을 실행을 한다. 그럼 실행한 파일이 컴퓨터의 메모리 영역(RAM)에 올라가게 되고 해당 프로그램은 이제 실행중인 상태가 된다. 이 실행중인 상태의 프로그램을 프로세스라고 한다.

 

각 프로세스에서의 스레드 수

 

스레드는 프로세스보다 더 작은 실행의 단위라고 생각하면 된다. 일반적으로 하나의 프로그램은 하나의 스레드를 가지는데, 프로그램에 따라서 두개 이상의 스레드를 동시에 실행하는데 이러한 실행 방식을 멀티스레드(multithread)라고 한다.

 

두 개의 스레드를 실행하고 있는 하나의 프로세스

그림과 같이 프로세스가 실행된다는 것은 그 안에 작은 작업의 단위인 스레드가 실행이 된다는 것인데, 멀티스레드가 실행이 된다면 각 스레드들이 하나의 프로세스내에서 해당 프로세스의 자원을 공유하면서 프로그램이 동작하게 한다.

 

반응형

'CS' 카테고리의 다른 글

동기와 비동기의 개념과 차이  (0) 2021.04.16
profile

개발은 재밌어야 한다

@ghyeong

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!