쓰레드

yuJaeWu·2021년 3월 8일
0

TIL

목록 보기
50/68

쓰레드란?


스레드(thread)는 프로그램 내에서, 특히 프로세스내에서 실행되는 흐름의 단위를 말한다.
일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만,
프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다.
이러한 실행 방식을 멀티스레드(multithread)라고 한다.

그렇다면 프로세스의 작업 단위를 나눈것이 스레드인가?
그렇다. 프로세스는 os에서 실행되는 프로그램의 단위이고,
이 프로세스내에서 실행되는 일련의 작업들을 스레드라고 부른다.

다중스레드 가 발생하면 높은 우선 순위를 가진 스레드가 더 많은 시간 동안 CPU를 점유하여 스레드 내용을 실행할 수 있다.

Node.js도 single thread만 사용하는 것이 아니라 내부적으로 multi thread pool을 사용하기는 한다

※ Event Loop
Event Loop는 Single-Thread 기반에서 비동기 메시지를 처리합니다. 이러한 Event Loop는 고성능의 병렬처리를 보장하도록 설계되어 있습니다. 따라서 이벤트에 의해 처리해야 할 단위 작업이 아주 짧은 시간 안에 처리된다면 Node.js의 고성능의 장점을 극대화 할 수 있습니다. 만일 처리 작업이 CPU를 많이 소모한다든지 대용량 파일을 처리하는 작업이라면 Node.js 는 독약과도 같습니다. 그러나 IO 작업이 별로 없는 애플리케이션이나 단위작업이 짧은 메시징 애플리케이션의 경우에는 Node.js는 고성능을 보장해 줍니다.

profile
어중간한 성공보다는 확실한 실패가 좋다.

0개의 댓글