Question

스레드란? (실타래, 실을 꿰다) vs process


💡 한 프로세스에서도 여러가지 작업이 존재한다. 예를들면, 크롬으로 동영상을 보면서 옆에 탭에서 검색을 한다고 할 때, 크롬은 유튜브에서 데이터도 다운받아야 하고, 동시에 영상, 소리 등도 함께 재생시켜줘야하고 한쪽에서는 검색 데이터도 입력받고 전달하고 그리고 데이터도 받아와야 한다. 또는 게임과 같은 프로세스도 동시에 여러가지 일을 수행한다. 이처럼 프로세스는 여러가지 작업이 동시에 진행된다.

💡 cpu는 요리사, 프로세스들은 요리메뉴, 스레드는 요리에 필요한 모든것들.

동시에 여러 요리를 함께 : 멀티태스킹 (context switching), 여러명의 요리사가 함께 : 멀티 프로세싱, 멀티코어 프로세서. Parallelism

→ 필로소피 과제같은데?

프로세스와 스레드 5분영상 (https://www.youtube.com/watch?v=iks_Xb9DtTM)

프로세스를 잘게 쪼개다

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/11433e17-ea9a-44c5-886f-1fd6f97e8396/thread.jpg

프로세스는 메모리에 적재가 된다 (코드가 위치한 부분이 있다. 코드/데이터/힙/스택 . 4개의 영역) 스레드로 나눠졌어도 코드, 데이터, 힙 영역은 그대로 사용. but! 스택공간은 독립적으로 가져간다 (스레드 별로)

중요! 스택만큼은 공유할수 업따. a스택 따로, b스택 따로, c스택 따로. 각각 독립적으로