더북(TheBook)

3.5.7 worker_threads

노드에서 멀티 스레드 방식으로 작업하는 방법을 소개합니다. worker_threads 모듈로 가능합니다.

먼저 간단한 사용 방법을 알아보겠습니다.

worker_threads.js

const {
  Worker, isMainThread, parentPort,
} = require('worker_threads');

if (isMainThread) { // 부모일 때
  const worker = new Worker(__filename);
  worker.on('message', message => console.log('from worker', message));
  worker.on('exit', () => console.log('worker exit'));
  worker.postMessage('ping');
} else { // 워커일 때
  parentPort.on('message', (value) => {
    console.log('from parent', value);
    parentPort.postMessage('pong');
    parentPort.close();
  });
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.