프로세스 안에서 실행되는 여러 흐름 단위
thread는 어플리케이션 내에서 실행됩니다.
여러 개의 task로 이루어진 애플리케이션은 separate threads로 분리됩니다.
== 하나의 task마다 하나의 tread를 만듭니다.
???: thread가 아니라 process를 여러개 만들어서 진행해도 되지 않을까요??
→ process를 만드는 것은 비용이 매우 많이 든다. OS가 할일도 많고, overhead도 많아서 하지 않습니다!!
code, data, file은 쓰레드끼리 공유합니다.
registers와 stack은 쓰레드마다 가집니다.
code, data, files는 공유하고, registers와 stack은 각자 가지고 있다는 것을 알고 있어야합니다.
→ 프로세스가 달라지면 공유되는 부분도 달라지지만, 쓰레드가 달라진다고 공유되는 부분이 바뀌진 않습니다.
반응이 빨라집니다.
리소스 쉐어가 더 편리하고 경제적입니다. == code, data, file을 공유하기 때문입니다.