ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 블로킹과 논블로킹 그리고 스레드의 관계(1)
    TodayILearned/node.js 2020. 10. 28. 00:45

    /Nonblocking

    논블로킹이란, 이전 작업이 완료 될 때 까지 멈추지않고 다음 작업을 수행함을 의미

    블로킹이란, 이전 작업이 멈추지 않으면 다음 작업을 수행하지 않음을 의미

    nonblocking과 blocking방식

    Blocking방식의 코드

    function longRunningTask(){
    	//오래걸리는 작업
    	console.log('작업끝');
    }
    console.log('시작');
    longRunningTask();
    console.log('다음작업');

    실행내역 >

    오래걸리는 작업이 끝나지 않으면 다음작업은 호출되지않는다.

    NonBlocking방식의 코드

    function lonRunningTask(){
    	//오래걸리는 작업
    	console.log('작업끝');
    }
    console.log('시작')
    setTimeout(longRunningTask,0);
    console.log('다른작업')

    실행내역>

    오래 걸리는 작업은 이벤트루프로 인해 테스크큐로 빠지게되고, 다른작업이 먼저 호출 된 후 작업이 실행된다.

     

    Thread

    single thread / multi thread

    스레드는 process 내에서 프로그램에서 할당받은 자원을 실행하는 단위이다.

    single thread는 주어진 작업을 혼자서 처리한다.

    multi thread는 주어진 작업을 나누어 처리한다.

    Thread 1: Task A --> Task B
    Thread 2: Task C --> Task D

    multi thread 내에서 Thread1과2가 ABCD를 나누어 처리한다.

    그러나, node.js에서 항상 multi thread가 우세한 것은 아니다.

     

     

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

    블로킹과 논블로킹 그리고 스레드의 관계(2)  (0) 2020.10.30
    async, await 의 개념(1)  (0) 2020.10.11
    var,let,const 의 특징  (0) 2020.10.10
Designed by Tistory.