
Thread 정의와 Thread vs Proces
1. Thread? 한마디로 ‘프로세스 내에서 실행되는 흐름’이라고 말할 수 있다. 스레드들은 해당 프로세스의 상태와 리소스를 공유하며, 동일한 주소 공간에 있다. 이들은 각각의 stack만 따로 할당 받고 code, data, heap은 공유한다. (stack은 지역변수가 저장되는 곳이다. 이를 생각해보면 지역변수는 각자 Thread가 할당된다는 것을 알 수 있다. 또한 독립적인 함수 호출을 가능하게 한다.) 헷갈린다면, 파이썬 스크립트 파일을 생각하면 쉽다. 파이썬의 파일을 실행시키면 한줄 파일이 실행되는데, 이렇게 실행되는 일련의 흐름이 곧 스레드이다. 일반적으로 하나의 프로세스는 하나의 스레드로 시작되며, 이를 메인 스레드라고 한다. 스레드를 추가로 생성하지 않는 한 모든 프로그램은 메인 스레드에..