728x90
1. 싱글 스레드
싱글 스레드란 스레드가 하나뿐이라는 것을 의미하며, 기본적으로 작성한 Javascript Code가 동시에 실행될 수 없는 이유이기도 하다. 스레드를 이해하기 위해 프로세스의 개념을 알아야 하며, 프로세스와 스레드의 차이는 다음과 같다.
프로세스 :
운영체제에서 할당하는 작업의 단위, Node나 Web Browser 같은 프로그램은 개별적인 프로세스이며, 프로세스 간에는 메모리 등의 자원을 공유하지 않는다.
스레드 :
프로세스 내에서 실행되는 흐름의 단위, 프로세스는 스레드를 여러 개 생성해 여러 작업을 동시에 처리할 수 있다. 스레드들은 같은 주소의 메모리에 접근이 가능하므로 데이터를 공유할 수 있으며, 부모 프로세스의 자원을 공유한다.
* Node가 싱글 스레드라는 말을 들어봤을 것이다. 하지만 엄밀히 말하면 싱글 스레드로 동작하지 않는다. Node는 실행하면 프로세스가 하나 생성되고 그 프로세스에서 스레드를 생성하는데, 이때 내부적으로 스레드를 여러 개 생성한다. 그중에서 직접 제어할 수 있는 스레드는 하나뿐이므로 Node가 싱글 스레드로 여겨지는 이유이다.
728x90