앞선 아티클에서 우리는 노드의 싱글 스레드 사용 구조에 대해서 살펴보았습니다. 잘 기억이 나지 않으면 식당 점원에 비유한 아래 아티클을 다시 한번 살펴보시기 바랍니다.
그래서 우리는 기본적으로는 노드의 구조가 싱글 스레드를 기반으로 이루어져 있는 것으로 인식하고 학습해 왔죠. 이번 아티클에서는 worker threads를 이용한 멀티 스레딩 방식에 대해서 살펴보겠습니다.
우선, 예제를 살펴보기 전에 알아둬야 하는 중요 개념이 있습니다. 바로 메인 스레드와 워커 스레드죠. 눈치가 빠른 분들이라면 아셨겠지만, 기존에 동작하던 싱글 스레드를 메인 스레드 또는 부모 스레드로 칭합니다. 우리가 별도로 생성하는 스레드를 워커 스레드로 칭하게 되죠.
아래 예제와 실행 사례를 보겠습니다.
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();
});
}
/* 출력
from parent ping!
from worker pong!
worker exit
*/
'Programming > Node.js' 카테고리의 다른 글
4. Node 기능 살펴보기 (4) - 노드 내장 모듈 9 [worker_threads] 3 (0) | 2024.05.02 |
---|---|
4. Node 기능 살펴보기 (4) - 노드 내장 모듈 9 [worker_threads] 2 (0) | 2024.05.01 |
4. Node 기능 살펴보기 (4) - 노드 내장 모듈 8 [util] (1) | 2024.04.26 |
4. Node 기능 살펴보기 (4) - 노드 내장 모듈 7 [crypto] : 양방향 암호화 (0) | 2024.04.25 |
4. Node 기능 살펴보기 (4) - 노드 내장 모듈 7 [crypto] : 단방향 암호화 2 (0) | 2024.04.23 |