개발바닥

프로세스와 스레드 본문

node.js

프로세스와 스레드

라이언 2019. 2. 1. 13:59
반응형

잘 알아두어야 할 개념 중 하나인 프로세스와 스레드에 대해서 알아보겠습니다.


프로세스(Process) 란?

운영체제에서 할당하는 작업의 단위이다. 노드나 인터넷 브라우저 가은 프로그램은 개별적인 프로세스입니다. 프로세스 간에는 메모리 등의 자원을 공유하지 않습니다. 메모리를 공유하지 않으므로 특정 프로세스가 비정상적인 실행이나 종료가 되더라도 다른 프로세스에 영향을 미치지 않습니다. 그 이유는 독립적으로 자기만의 영역을 가지고 있기 때문입니다.



스레드(Thread) 란?

프로세스 내에서 실행되는 흐름의 단위입니다. 하나의 프로세스는 스레드를 여러 개 가질 수 있다. 스레드들은 부모 프로세스의 자원을 공유합니다. 즉 , 같은 메모리에 접근할 수 있다. 한 프로세스에서 여러 스레드가 자원을 공유하고 있기때문에 잘못 구현하면 다른 스레드에도 치명적인 영향을 미쳐 전체적으로 프로세스가 오작동 하도록 만들 수 있으므로 잘 다루어야 됩니다.





노드는 싱글 스레드 방식을 채택하고 있습니다.

자바스크립트와 노드에서는 논블로킹이 중요한 이유는 바로 싱글 스레드이기 때문입니다.


노드는 싱글 스레드 여러 개를 사용해 멀티 스레딩과 비슷한 기능을 할 수 있습니다. 엄밀히 말하면 멀티 프로세싱에 가깝습니다.

한 프로세스에서 스레드를 늘리는 대신에 프로세스 자체를 복사해 여러 작업을 동시에 처리하는 멀티프로세싱 방식을 택하였습니다.



반응형

'node.js' 카테고리의 다른 글

Node.js 개념 정리  (0) 2019.02.01
Comments