프로세스: 운영체제로부터 자원을 할당받은 작업의 단위
스레드: 프로세스가 할당받은 자원을 이용하는 실행흐름의 단위
프로그램이 뭔지 먼저 알아야하는 것 같다..
프로그램 : 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태, 어떤 작업을 실행할 수 있는 파일
'실행할 수 있는'이다. 아직 실행되어지지 않은 상태.정적
메모리에 올라가 있지 않은 상태는 메모리 공간을 할당해주지 않은 상태.
우리 게임하다가 렉걸렸을 때 컨트롤+알트+딜리트 눌러서 강종하려고 할 때 메모리 할당율/프로세스 이런거 나오는게 기억났다 그거인듯 ㅎ
다시 말해, 프로그램은 실행되지 않은 어떤 thing이고 실행하면 프로세스가 된다.
요즈음에는 프로그램이 복잡해지고 프로세스 하나만을 사용해서 프로그램을 실행하기엔 벅차게 되었다.
현재에는 프로그램 하나가 한 작업만을 하는 경우는 없다.
그렇다면?,
운영체제는 안전을 위해 프로세스마다 할당된 메모리 내의 정보만 접근할 수 있도록 제약을 둔다.
그래서 스레드는 프로세스 보다 작은 실행 단위 개념이라고 볼 수 있다.
그러니깐....프로세스 안에서 스레드끼리 자원, 공간등을 공유한다.
위에서 스레드는 스레드는 실행흐름이라고 했다.
스레드는 프로세스 내에서 실행되는 여러가지 흐름의 단위이며, 수행 경로이다.
예전에 컴퓨터를 사려고 여기저기 기웃거리며 정보를 얻은 적이 있다.
몇 코어 12스레드 등등...
한 유튜버는 스레드를 이렇게 설명한게 기억이 난다.
님들이 스레드는 팔 갯수다. 팔이 많으면 당연히 작업효율이 올라가겠쥬?