ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NodeJS Process 정보
    개발언어/Node.js 2022. 7. 9. 16:09

    Process

    Node프로그램이 동작하고 있는 프로세스에 대한 정보를 가져오는 것

    process의 정의부를 확인해보면, global객체 역시 process안에 정의 되어 있는 것을 확인할 수 있다. 그 이후에 쭉내리면, interface Process에서 Process에서 사용가능한 것들을 확인해 볼 수 있다.

     

    openStdin(): Socket;

    socket을 연다.

     

    abort(): never;
    chdir(directory: stirng): void;
    cwd(): string;

    현재 경로를 출력한다.

     

    getgid(): number;
    setgid(id: number | string): void;
    getuid(): number;
    setuid(id: number | string): void;

    프로세스 관련 id를 받아 오고 등등의 정보를 받아 올 수 있다.

     

    process는 현재 실행되고 있는 node 프로세스에 대한 정보를 얻어 올 수 있다.

     

    setTimeout()

    setTimeout이라는 API를 이용해서 등록한 callback함수를 0ms 있다가 실행해달라고 요청할 수 있다. 즉 이말은 현재코드가 다 실행이 되고 0초있다가 callback 함수를 실행해달라는 의미이다.

     

    그러면  nodeJS에서 timer를 수행한 다음에 현재 Call Stack에 들어 있는 code가 다 수행된 다음에  Event Loop가 Task Queue에 있는 callback 함수를 Call stack으로 가져온다.

     

    즉 원래 적혀있는 code가 순서가 다 끝난 다음에 0초 있다가 즉 원래의 code가 다 수행이 되고 나서야 setTimeout의 callback함수가 실행이된다.

     

    nextTick()

    현재 수행되고 있는 code가 다 완료된 다음에 등록된 callback함수를 Task Queue에 다가 넣어 요청하고 싶을 때 쓸수 있다. setTimeout(() =>{},0)과 비슷하다. 현재 Call Stack에 있는 함수를 다 처리한 다음에 Task Queue에 해당 callback 함수를 넣었다가 수행해 달라는 것이기 때문이다.

     

     

    nextTick의 우선순위

    for loop가 다 돌고 나서 Call Stack이 비어있을 때 등록한 callback함수인 nextTick과 setTimeout이 실행되는 것을 확인 할 수 있다. 위 코드와 출력 결과를 확인해 보면 nextTick이라는 것은 Task Queue에 이미 다른 callback함수가 들어 있어도 그 순서를 무시하고 nextTick callback함수의 우선위를 제일 높여서 Task Queue 제일 앞부분에 넣어준다. 그래서 출력결과를 보면 code에서 먼저 적힌 setTimeout보다 nextTick이 먼저 호출 된 것을 확인 할 수 있다.

     

     

    [출처 -https://academy.dream-coding.com/courses/node ]

    '개발언어 > Node.js' 카테고리의 다른 글

    NodeJS Path 그리고 유의할 점  (0) 2022.07.27
    NodeJS Timer와 Call Stack의 연관  (0) 2022.07.09
    Node.js-Event-Driven  (0) 2022.07.09
    NodeJS 4가지 특징  (0) 2022.07.09
    NodeJS 운영체제 정보  (0) 2022.07.08

    댓글

Designed by Tistory.