개념정리

프로세스와 쓰레드의 차이점

춘핑이 2023. 8. 8. 14:51

프로세스와 쓰레드의 차이점

컴퓨터 지식(CS)적인 관점?에서 이해해야한다고 생각된다.

프로세스는 메모리 상에서 실행중인 프로그램을 말한다. 운영체제가 자원을 할당한 작업의 단위라고 말할 수 있다.
쓰레드는 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위이다.

만약 현재 블로그라는 프로그램을 돌린다고 생각해보자.(인터넷 창이아닌 프로그램이라고 생각)
운영체제가 블로그라는 프로그램을 실행시켜 자원을 할당하면 프로세스라고 생각한다.
그런데 이 프로그램이 단순히 하나의 일만하는 것이 아니다.

블로그를 작성하면서 자동 저장 기능이 실행되고 있고 글을 작성하는 기능이 실행되고 있고 정보를 띄워주는 기능이 실행되는 등
하나의 프로그램에서 여러가지 기능이 작동하고 있다.
만약 쓰레드가 없다면? 글 작성이 끝나고 자동저장기능이 실행되고 자동저장이 끝나야 정보를 가져오는 방식으로 진행이 될 것이다.
그렇지만 자동 저장은 글이 작성되면서 동시에 실행이 되어야한다.
이런식으로 프로세스 안에서 여러 작업을 나누어서 할당하는 것을 쓰레드라고 이해하고 있다.

또한 프로세스가 나누어져있을 때 만약 자동저장하는 프로세스와 글작성하는 프로세스가 나누어져있다면 서로 정보를 주고받아야하는데 이에 어려움이 발생한다. 쓰레드라면 같은 메모리를 공유하는 구조이기때문에 정보공유가 쉽다. 그래서 멀티 태스킹보다 멀티쓰레드가 자원을 아낄 수 있다고 한다.

여러 이해방식이 있지만 나는 이런식으로 이해하기로 했다.
실제로 동작방식을 더 찾아보며 더 깊게 이해하고자 한다.