<aside>

</aside>

참고자료

https://inpa.tistory.com/entry/👩‍💻-프로세스-⚔️-쓰레드-차이

https://dev.to/michinoins/single-threaded-vs-multi-threaded-servers-an-experiment-with-nodejs-and-java-3183

https://www.youtube.com/watch?v=Z0d7ZrxY-i0&list=LL&index=44

https://medium.com/@mirzahasnat/single-thread-programming-vs-multi-thread-programming-2d8c7c9ea51c

고민을 하게 된 계기

챌린지 초반부때부터 우리가 공통적으로 정말 자주 들은 말이 있다면, 그것은 아래와 같은 키워드 들일 것이다.

NodeJS , 단일 스레드 , 비동기 , 논블로킹 , EventLoop , EventDriven Architecture

그런데 나는 생각보다 위 개념들을 어느정도 이해했다고 생각했음에도 불구하고 프로세스스레드 의 개념을 혼동하고 있었고, 이를 정리하며 배우게 된 점, 스스로 하게된 생각들을 정리하고자 했다.

프로세스 VS 스레드

OS시간에 한번쯤 본 사진…

OS시간에 한번쯤 본 사진…

프로세스

image.png

운영체제로부터 자원을 할당받은 작업의 단위

말 그대로 프로그램을 실행시켜주는 하나의 독립된 작업 단위임. 프로그램이 실행되면 운영체제가 해당 프로그램에 대한 실행 환경을 마련해주고, 이 할당된 공간이 프로세스 인 것이다.

프로세스는 new, ready, running, waiting, terminated, suspended 등 다양한 상태를 가질 수 있다.

각 프로세스는 고유한 메모리 공간과 자원(파일 핸들링, 네트워크 소켓 등…)을 가진다.