λ―Έμ μ μ΄ν΄νλ κ²μ‘°μ°¨ λ²κ²κ² λκ»΄μ‘λ€β¦ κ°ν μ§κΈκΉμ§μ λ―Έμ μ€ κ°μ₯ 첫μΈμλ μ΄λ ΅κ³ , λ§μ§λ§κΉμ§ μ΄λ ΅λ€κ³ λκ»΄μ§λ€β¦
Publisher-Scriber ν¨ν΄

λ°νμ λ©μμ§μ μμ μκ° μ ν΄μ Έ μμ§ μλ€.
λ©μμ§λ μ ν΄μ§ λ²μ£Όμ λ°λΌμ ꡬλ μ μ μ²ν μμ μμκ² μ λ¬μ΄ λλ€.
μμ μλ λ°νμμ λν μ 보 μμ΄, μνλ λ©μμ§λ₯Ό μμ ν μ μλ€.
λ©μμ§ ν ν¨λ¬λ€μκ³Ό λ§μΉ νμ κ°μ κ΄κ³λ‘, λν λ©μμ§ μ§ν₯ λ―Έλ€μ¨μ΄ μ루μ μ μΌλΆλΌκ³ νλ€.
λ°νμμ ꡬλ μ
κ·Έλ¬λ―λ‘ pub, subμ μλ‘ μ νμκ° μμΌλ©°, λΈλ‘컀μμ ν΅μ λ§μ μνν μ μλ€λ©΄ μν μ μ μννλ κ²μ΄λ€.
λΈλ‘컀
λ©μμ§ν
μ±κΈν€
Worker Thread
// worker ν΄λμ€λ λ
립μ μΈ μλ°μ€ν¬λ¦½νΈ μ€ν μ€λ λλ₯Ό μλ―Ένκ³ , parentPortλ λ©μμ§ ν¬νΈμ μΈμ€ν΄μ€
const { worker, parentPort } = require('worker_threads')
// μ컀λ₯Ό μμνλ λκ°μ§ λ©μΈ λ°©λ²(νμΌ λͺ
μ λκΈ°κ±°λ, μ€ννκ³ μ νλ μ½λλ₯Ό μμ±νκ±°λ)
new Worker(filename)
new Worker(code,{eval:true})
// λ€λ₯Έ μ€λ λ κ° λ©μμ§λ₯Ό μ£Όκ³ λ°μ λ μ¬μ©
worker.on('message'),worker.postMessage(data)
//Β parentPort.postMessage(data)Β λ₯Ό ν΅ν΄ 보λ΄μ§ λ©μΈμ§λΒ worker.on('message')Β λ₯Ό μ¬μ©ν λΆλͺ¨ μ€λ λμμ μ¬μ©
// worker.postMessage(data)Β λ₯Ό μ¬μ©ν λΆλͺ¨ μ€λ λλ‘λΆν° 보λ΄μ§ λ©μΈμ§λΒ parentPort.on('message')Β λ₯Ό μ¬μ©ν μ€λ λμμ μ¬μ© κ°λ₯
parentPort.on('message'),parentPort.postMessage(data)
