{"id":89023,"date":"2024-12-20T04:28:45","date_gmt":"2024-12-20T00:58:45","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/understanding-worker-threads-and-child-processes-52nj\/"},"modified":"2024-12-20T04:28:45","modified_gmt":"2024-12-20T00:58:45","slug":"understanding-worker-threads-and-child-processes-52nj","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/understanding-worker-threads-and-child-processes-52nj\/","title":{"rendered":"\u062f\u0631\u06a9 \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u06a9\u0627\u0631\u06af\u0631\u06cc \u0648 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n              Worker Threads \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u062f \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062d\u0627\u0641\u0638\u0647 \u0628\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 SharedArrayBuffer \u0648 \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0648\u0638\u0627\u06cc\u0641 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 CPU \u0645\u0627\u0646\u0646\u062f \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0627\u062f\u0647 \u06cc\u0627 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0627\u06cc\u062f\u0647 \u0622\u0644 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/p>\n<p>Child Processes \u0634\u0645\u0627 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc \u0633\u0627\u0632\u062f \u062a\u0627 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0648\u0638\u0627\u06cc\u0641 \u0645\u0633\u062a\u0642\u0644 \u0627\u0632 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0635\u0644\u06cc Node.js \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u062f\u0627\u0631\u0646\u062f \u06cc\u0627 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627\u06cc \u063a\u06cc\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u06cc\u0627 \u0628\u0627\u06cc\u0646\u0631\u06cc \u0647\u0627 \u0645\u0646\u0627\u0633\u0628 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0648\u0627\u0642\u0639\u06cc \u0628\u0631\u0627\u06cc \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u06a9\u0627\u0631\u06af\u0631\u06cc<\/p>\n<p>1\ufe0f\u20e3 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0635\u0648\u06cc\u0631\u0647\u0646\u06af\u0627\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u0628\u062f\u06cc\u0644\u200c\u0647\u0627\u06cc \u062a\u0635\u0648\u06cc\u0631 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0632\u0631\u06af\u060c \u0645\u0627\u0646\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647\u060c \u0628\u0631\u0634 \u06cc\u0627 \u0627\u0639\u0645\u0627\u0644 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u060c Worker Threads \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0627\u0632 \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0646 \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u0635\u0644\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>const { Worker } = require(&#8216;worker_threads&#8217;);<\/p>\n<p>function resizeImage(imagePath) {<br \/>\n  return new Promise((resolve, reject) =&gt; {<br \/>\n    const worker = new Worker(&#8216;.\/resizeWorker.js&#8217;, { workerData: imagePath });<br \/>\n    worker.on(&#8216;message&#8217;, resolve);<br \/>\n    worker.on(&#8216;error&#8217;, reject);<br \/>\n  });<br \/>\n}<\/p>\n<p>\/\/ Usage<br \/>\nresizeImage(&#8216;image.jpg&#8217;).then(() =&gt; console.log(&#8216;Image resized!&#8217;));<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>2\ufe0f\u20e3 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627<\/p>\n<p>\u062a\u062c\u0632\u06cc\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af JSON \u06cc\u0627 \u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc CSV \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u0646\u0627\u0628\u0639 \u0632\u06cc\u0627\u062f\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. Worker Threads \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u06a9\u0647 \u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u062f \u0648 \u0627\u0632 \u067e\u0627\u0633\u062e\u06af\u0648 \u0628\u0648\u062f\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>const { Worker } = require(&#8216;worker_threads&#8217;);<\/p>\n<p>const worker = new Worker(&#8216;.\/dataParser.js&#8217;);<br \/>\nworker.postMessage({ filePath: &#8216;largeData.json&#8217; });<br \/>\nworker.on(&#8216;message&#8217;, (data) =&gt; {<br \/>\n  console.log(&#8216;Parsed Data:&#8217;, data);<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>3\ufe0f\u20e3 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0631\u06cc\u0627\u0636\u06cc<\/p>\n<p>Worker Thread \u0647\u0627 \u0628\u0631\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0633\u0646\u06af\u06cc\u0646 \u0645\u0627\u0646\u0646\u062f \u062a\u0648\u0644\u06cc\u062f \u0627\u0639\u062f\u0627\u062f \u0627\u0648\u0644\u060c \u0636\u0631\u0628 \u0645\u0627\u062a\u0631\u06cc\u0633 \u06cc\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0639\u0627\u0644\u06cc \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>const { Worker } = require(&#8216;worker_threads&#8217;);<\/p>\n<p>function calculatePrimes(limit) {<br \/>\n  return new Promise((resolve, reject) =&gt; {<br \/>\n    const worker = new Worker(&#8216;.\/primeWorker.js&#8217;, { workerData: limit });<br \/>\n    worker.on(&#8216;message&#8217;, resolve);<br \/>\n    worker.on(&#8216;error&#8217;, reject);<br \/>\n  });<br \/>\n}<\/p>\n<p>\/\/ Usage<br \/>\ncalculatePrimes(100000).then(primes =&gt; console.log(primes));<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0632\u0646\u062f\u06af\u06cc \u0648\u0627\u0642\u0639\u06cc \u0628\u0631\u0627\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/p>\n<p>1\ufe0f\u20e3 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0634\u0644<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u067e\u0648\u0633\u062a\u0647 \u062f\u0627\u0631\u062f\u060c Child Processes \u06af\u0632\u06cc\u0646\u0647 \u0627\u0635\u0644\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>const { exec } = require(&#8216;child_process&#8217;);<\/p>\n<p>exec(&#8216;ls -l&#8217;, (error, stdout, stderr) =&gt; {<br \/>\n  if (error) {<br \/>\n    console.error(`Error: ${error.message}`);<br \/>\n    return;<br \/>\n  }<br \/>\n  console.log(`Output:\\n${stdout}`);<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>2\ufe0f\u20e3 \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627\u06cc \u063a\u06cc\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<\/p>\n<p>\u0627\u06af\u0631 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u0634\u0645\u0627 \u0634\u0627\u0645\u0644 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u0631\u0648\u0628\u06cc \u06cc\u0627 \u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 Child Processes \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0631\u0648\u062c\u06cc \u0622\u0646\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>const { spawn } = require(&#8216;child_process&#8217;);<\/p>\n<p>const pythonProcess = spawn(&#8216;python&#8217;, [&#8216;script.py&#8217;]);<\/p>\n<p>pythonProcess.stdout.on(&#8216;data&#8217;, (data) =&gt; {<br \/>\n  console.log(`Output: ${data}`);<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>3\ufe0f\u20e3 \u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0647\u0627<\/p>\n<p>\u062f\u0631 \u06cc\u06a9 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0645\u0627\u0646\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 Child Processes \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0648\u0638\u0627\u06cc\u0641 \u0645\u062c\u0632\u0627 \u0648 \u0645\u0633\u062a\u0642\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 IPC (\u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc) \u0628\u0627 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0635\u0644\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<p>const { fork } = require(&#8216;child_process&#8217;);<\/p>\n<p>const child = fork(&#8216;.\/childService.js&#8217;);<\/p>\n<p>child.on(&#8216;message&#8217;, (message) =&gt; {<br \/>\n  console.log(&#8216;Message from child:&#8217;, message);<br \/>\n});<\/p>\n<p>\/\/ Send a task to the child process<br \/>\nchild.send({ task: &#8216;processData&#8217;, payload: [1, 2, 3] });<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u06af\u0631\u06cc \u0648 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/p>\n<p>\u0648\u06cc\u0698\u06af\u06cc<br \/>\n\u0645\u0648\u0636\u0648\u0639\u0627\u062a \u06a9\u0627\u0631\u06af\u0631\u06cc<br \/>\n\u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/p>\n<p>\u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062d\u0627\u0641\u0638\u0647<br \/>\n\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 SharedArrayBuffer<\/p>\n<p>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0648\u0638\u06cc\u0641\u0647<br \/>\n\u0645\u062d\u06cc\u0637 \u0645\u0634\u062a\u0631\u06a9\u060c \u06a9\u0645\u062a\u0631 \u0627\u06cc\u0632\u0648\u0644\u0647<br \/>\n\u06a9\u0627\u0645\u0644\u0627 \u0627\u06cc\u0632\u0648\u0644\u0647<\/p>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0648\u0631\u062f<br \/>\n\u06a9\u0627\u0631\u0647\u0627\u06cc \u0641\u0634\u0631\u062f\u0647 CPU \u062f\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<br \/>\n\u0648\u0638\u0627\u06cc\u0641 \u0633\u0637\u062d \u0633\u06cc\u0633\u062a\u0645 \u06cc\u0627 \u06a9\u062f \u062e\u0627\u0631\u062c\u06cc<\/p>\n<p>\u0633\u0631\u0628\u0627\u0631<br \/>\n\u067e\u0627\u06cc\u06cc\u0646 \u062a\u0631 (\u0647\u0645\u0627\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f)<br \/>\n\u0628\u0627\u0644\u0627\u062a\u0631 (\u0641\u0631\u0627\u06cc\u0646\u062f\u0647\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647)<\/p>\n<p>\u0627\u0631\u062a\u0628\u0627\u0637<br \/>\n\u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645\u060c \u0633\u0631\u06cc\u0639\u062a\u0631<br \/>\n\u0627\u0632 \u0637\u0631\u06cc\u0642 IPC\u060c \u06a9\u0646\u062f\u062a\u0631<\/p>\n<p>\u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u062f\u0647<br \/>\n\u0641\u0642\u0637 JavaScript\/Node.js<br \/>\n\u0647\u0631 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u06cc\u0627 \u062f\u0631 \u0633\u0637\u062d \u0633\u06cc\u0633\u062a\u0645<\/p>\n<p>\u0632\u0645\u0627\u0646 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc<br \/>\n\u0633\u0631\u06cc\u0639\u062a\u0631<br \/>\n\u06a9\u0646\u062f\u062a\u0631<\/p>\n<p>\u0645\u0647\u0627\u0631 \u062e\u0637\u0627<br \/>\n\u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u06a9\u0645\u062a\u0631\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0631\u0648\u0646\u062f \u0631\u0627 \u062e\u0631\u0627\u0628 \u06a9\u0646\u062f<br \/>\n\u0634\u06a9\u0633\u062a \u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u0647\u0627\u0631 \u0634\u062f\u0647 \u0648 \u062c\u062f\u0627 \u0634\u062f\u0647<\/p>\n<p>\u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u062e \u0647\u0627\u06cc \u06a9\u0627\u0631\u06af\u0631 \u0648 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/p>\n<p>\u2713 Offload \u0648\u0638\u0627\u06cc\u0641 \u0641\u0634\u0631\u062f\u0647: \u0627\u0632 Worker Threads \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc \u0645\u062d\u062f\u0648\u062f \u0628\u0647 CPU \u0648 Child Processes \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a I\/O-heavy \u06cc\u0627 \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062e\u0627\u0631\u062c\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u2713 \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0627\u0646\u06cc\u062a\u0648\u0631: \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0646\u0645\u0627\u06cc\u0647 \u0633\u0627\u0632 \u062f\u0627\u062e\u0644\u06cc Node.js \u0628\u0631\u0627\u06cc \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u062a\u0646\u06af\u0646\u0627\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u2713 \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0638\u0631\u0627\u0641\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f: \u0647\u0645\u06cc\u0634\u0647 \u0628\u0647 \u062e\u0637\u0627\u0647\u0627 \u06af\u0648\u0634 \u062f\u0647\u06cc\u062f \u0648 \u0627\u0632 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0634\u06a9\u0633\u062a \u0647\u0627 \u0631\u0633\u06cc\u062f\u06af\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u2713 \u0645\u0642\u06cc\u0627\u0633 \u0645\u0648\u062b\u0631: \u0627\u0632 \u06af\u0631\u0648\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u06af\u0631 \u06cc\u0627 \u062e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0632\u06cc\u0639 \u0648\u0638\u0627\u06cc\u0641 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0631\u0634\u062a\u0647 \u06cc\u0627 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/p>\n<p>Worker Threads \u0648 Child Processes \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 Node.js \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0627\u0632 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u062a\u06a9 \u0631\u0634\u062a\u0647 \u0627\u06cc \u0631\u0647\u0627\u06cc\u06cc \u06cc\u0627\u0628\u0646\u062f. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0648 \u067e\u0627\u0633\u062e\u06af\u0648 \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0647\u0645 \u0648\u0638\u0627\u06cc\u0641 CPU \u0648 \u0647\u0645 I\/O \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f. \u062e\u0648\u0627\u0647 \u062f\u0631 \u062d\u0627\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0635\u0627\u0648\u06cc\u0631\u060c \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u067e\u0648\u0633\u062a\u0647 \u06cc\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0647\u0627 \u0628\u0627\u0634\u06cc\u062f\u060c \u062f\u0631\u06a9 \u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Worker Threads \u0648 Child Processes \u06a9\u0644\u06cc\u062f \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc Node.js \u0634\u0645\u0627 \u0627\u0633\u062a.<\/p>\n<div data-article-id=\"2165971\" id=\"article-body\">\n<p>Worker Threads \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u062f \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062d\u0627\u0641\u0638\u0647 \u0628\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 SharedArrayBuffer \u0648 \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0648\u0638\u0627\u06cc\u0641 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 CPU \u0645\u0627\u0646\u0646\u062f \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0627\u062f\u0647 \u06cc\u0627 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0627\u06cc\u062f\u0647 \u0622\u0644 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p><strong>\u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/strong><\/p>\n<p>Child Processes \u0634\u0645\u0627 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc \u0633\u0627\u0632\u062f \u062a\u0627 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0648\u0638\u0627\u06cc\u0641 \u0645\u0633\u062a\u0642\u0644 \u0627\u0632 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0635\u0644\u06cc Node.js \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u062f\u0627\u0631\u0646\u062f \u06cc\u0627 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627\u06cc \u063a\u06cc\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u06cc\u0627 \u0628\u0627\u06cc\u0646\u0631\u06cc \u0647\u0627 \u0645\u0646\u0627\u0633\u0628 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p><strong>\u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0648\u0627\u0642\u0639\u06cc \u0628\u0631\u0627\u06cc \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u06a9\u0627\u0631\u06af\u0631\u06cc<\/strong><\/p>\n<p>1\ufe0f\u20e3 <strong>\u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0635\u0648\u06cc\u0631<\/strong><br \/>\u0647\u0646\u06af\u0627\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u0628\u062f\u06cc\u0644\u200c\u0647\u0627\u06cc \u062a\u0635\u0648\u06cc\u0631 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0632\u0631\u06af\u060c \u0645\u0627\u0646\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647\u060c \u0628\u0631\u0634 \u06cc\u0627 \u0627\u0639\u0645\u0627\u0644 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u060c Worker Threads \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0627\u0632 \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0646 \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u0635\u0644\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Worker<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">worker_threads<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">resizeImage<\/span><span class=\"p\">(<\/span><span class=\"nx\">imagePath<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Promise<\/span><span class=\"p\">((<\/span><span class=\"nx\">resolve<\/span><span class=\"p\">,<\/span> <span class=\"nx\">reject<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">worker<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Worker<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.\/resizeWorker.js<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"na\">workerData<\/span><span class=\"p\">:<\/span> <span class=\"nx\">imagePath<\/span> <span class=\"p\">});<\/span>\n    <span class=\"nx\">worker<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">message<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">resolve<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">worker<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">error<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">reject<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Usage<\/span>\n<span class=\"nf\">resizeImage<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">image.jpg<\/span><span class=\"dl\">'<\/span><span class=\"p\">).<\/span><span class=\"nf\">then<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Image resized!<\/span><span class=\"dl\">'<\/span><span class=\"p\">));<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>2\ufe0f\u20e3 <strong>\u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627<\/strong><\/p>\n<p>\u062a\u062c\u0632\u06cc\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af JSON \u06cc\u0627 \u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc CSV \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u0646\u0627\u0628\u0639 \u0632\u06cc\u0627\u062f\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. Worker Threads \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u06a9\u0647 \u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u062f \u0648 \u0627\u0632 \u067e\u0627\u0633\u062e\u06af\u0648 \u0628\u0648\u062f\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Worker<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">worker_threads<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">worker<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Worker<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.\/dataParser.js<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">worker<\/span><span class=\"p\">.<\/span><span class=\"nf\">postMessage<\/span><span class=\"p\">({<\/span> <span class=\"na\">filePath<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">largeData.json<\/span><span class=\"dl\">'<\/span> <span class=\"p\">});<\/span>\n<span class=\"nx\">worker<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">message<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Parsed Data:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">data<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>3\ufe0f\u20e3 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0631\u06cc\u0627\u0636\u06cc<\/strong><\/p>\n<p>Worker Thread \u0647\u0627 \u0628\u0631\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0633\u0646\u06af\u06cc\u0646 \u0645\u0627\u0646\u0646\u062f \u062a\u0648\u0644\u06cc\u062f \u0627\u0639\u062f\u0627\u062f \u0627\u0648\u0644\u060c \u0636\u0631\u0628 \u0645\u0627\u062a\u0631\u06cc\u0633 \u06cc\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0639\u0627\u0644\u06cc \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Worker<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">worker_threads<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">calculatePrimes<\/span><span class=\"p\">(<\/span><span class=\"nx\">limit<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Promise<\/span><span class=\"p\">((<\/span><span class=\"nx\">resolve<\/span><span class=\"p\">,<\/span> <span class=\"nx\">reject<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">worker<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Worker<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.\/primeWorker.js<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"na\">workerData<\/span><span class=\"p\">:<\/span> <span class=\"nx\">limit<\/span> <span class=\"p\">});<\/span>\n    <span class=\"nx\">worker<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">message<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">resolve<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">worker<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">error<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">reject<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Usage<\/span>\n<span class=\"nf\">calculatePrimes<\/span><span class=\"p\">(<\/span><span class=\"mi\">100000<\/span><span class=\"p\">).<\/span><span class=\"nf\">then<\/span><span class=\"p\">(<\/span><span class=\"nx\">primes<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">primes<\/span><span class=\"p\">));<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0632\u0646\u062f\u06af\u06cc \u0648\u0627\u0642\u0639\u06cc \u0628\u0631\u0627\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/strong><\/p>\n<p>1\ufe0f\u20e3 <strong>\u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0634\u0644<\/strong><\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u067e\u0648\u0633\u062a\u0647 \u062f\u0627\u0631\u062f\u060c Child Processes \u06af\u0632\u06cc\u0646\u0647 \u0627\u0635\u0644\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">exec<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">child_process<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nf\">exec<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">ls -l<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">,<\/span> <span class=\"nx\">stdout<\/span><span class=\"p\">,<\/span> <span class=\"nx\">stderr<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Error: <\/span><span class=\"p\">${<\/span><span class=\"nx\">error<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Output:\\n<\/span><span class=\"p\">${<\/span><span class=\"nx\">stdout<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>2\ufe0f\u20e3 <strong>\u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627\u06cc \u063a\u06cc\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<\/strong><\/p>\n<p>\u0627\u06af\u0631 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u0634\u0645\u0627 \u0634\u0627\u0645\u0644 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u0631\u0648\u0628\u06cc \u06cc\u0627 \u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 Child Processes \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0631\u0648\u062c\u06cc \u0622\u0646\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">spawn<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">child_process<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">pythonProcess<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">spawn<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">python<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">script.py<\/span><span class=\"dl\">'<\/span><span class=\"p\">]);<\/span>\n\n<span class=\"nx\">pythonProcess<\/span><span class=\"p\">.<\/span><span class=\"nx\">stdout<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">data<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Output: <\/span><span class=\"p\">${<\/span><span class=\"nx\">data<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>3\ufe0f\u20e3 <strong>\u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0647\u0627<\/strong><\/p>\n<p>\u062f\u0631 \u06cc\u06a9 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0645\u0627\u0646\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 Child Processes \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0648\u0638\u0627\u06cc\u0641 \u0645\u062c\u0632\u0627 \u0648 \u0645\u0633\u062a\u0642\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 IPC (\u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc) \u0628\u0627 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0635\u0644\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">fork<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">child_process<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">child<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">fork<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.\/childService.js<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nx\">child<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">message<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">message<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Message from child:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">message<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"c1\">\/\/ Send a task to the child process<\/span>\n<span class=\"nx\">child<\/span><span class=\"p\">.<\/span><span class=\"nf\">send<\/span><span class=\"p\">({<\/span> <span class=\"na\">task<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">processData<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">payload<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">]<\/span> <span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u06af\u0631\u06cc \u0648 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/strong><\/p>\n<div class=\"table-wrapper-paragraph\">\n<table>\n<thead>\n<tr>\n<th><strong>\u0648\u06cc\u0698\u06af\u06cc<\/strong><\/th>\n<th><strong>\u0645\u0648\u0636\u0648\u0639\u0627\u062a \u06a9\u0627\u0631\u06af\u0631\u06cc<\/strong><\/th>\n<th><strong>\u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062d\u0627\u0641\u0638\u0647<\/strong><\/td>\n<td>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 <code>SharedArrayBuffer<\/code>\n<\/td>\n<td>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u0634\u0648\u062f<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0648\u0638\u06cc\u0641\u0647<\/strong><\/td>\n<td>\u0645\u062d\u06cc\u0637 \u0645\u0634\u062a\u0631\u06a9\u060c \u06a9\u0645\u062a\u0631 \u0627\u06cc\u0632\u0648\u0644\u0647<\/td>\n<td>\u06a9\u0627\u0645\u0644\u0627 \u0627\u06cc\u0632\u0648\u0644\u0647<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0648\u0631\u062f<\/strong><\/td>\n<td>\u06a9\u0627\u0631\u0647\u0627\u06cc \u0641\u0634\u0631\u062f\u0647 CPU \u062f\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<\/td>\n<td>\u0648\u0638\u0627\u06cc\u0641 \u0633\u0637\u062d \u0633\u06cc\u0633\u062a\u0645 \u06cc\u0627 \u06a9\u062f \u062e\u0627\u0631\u062c\u06cc<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0633\u0631\u0628\u0627\u0631<\/strong><\/td>\n<td>\u067e\u0627\u06cc\u06cc\u0646 \u062a\u0631 (\u0647\u0645\u0627\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f)<\/td>\n<td>\u0628\u0627\u0644\u0627\u062a\u0631 (\u0641\u0631\u0627\u06cc\u0646\u062f\u0647\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647)<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0627\u0631\u062a\u0628\u0627\u0637<\/strong><\/td>\n<td>\u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645\u060c \u0633\u0631\u06cc\u0639\u062a\u0631<\/td>\n<td>\u0627\u0632 \u0637\u0631\u06cc\u0642 IPC\u060c \u06a9\u0646\u062f\u062a\u0631<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u062f\u0647<\/strong><\/td>\n<td>\u0641\u0642\u0637 JavaScript\/Node.js<\/td>\n<td>\u0647\u0631 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u06cc\u0627 \u062f\u0631 \u0633\u0637\u062d \u0633\u06cc\u0633\u062a\u0645<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0632\u0645\u0627\u0646 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc<\/strong><\/td>\n<td>\u0633\u0631\u06cc\u0639\u062a\u0631<\/td>\n<td>\u06a9\u0646\u062f\u062a\u0631<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0645\u0647\u0627\u0631 \u062e\u0637\u0627<\/strong><\/td>\n<td>\u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u06a9\u0645\u062a\u0631\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0631\u0648\u0646\u062f \u0631\u0627 \u062e\u0631\u0627\u0628 \u06a9\u0646\u062f<\/td>\n<td>\u0634\u06a9\u0633\u062a \u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u0647\u0627\u0631 \u0634\u062f\u0647 \u0648 \u062c\u062f\u0627 \u0634\u062f\u0647<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>\u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u062e \u0647\u0627\u06cc \u06a9\u0627\u0631\u06af\u0631 \u0648 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9<\/strong><\/p>\n<p>\u2713 <strong>Offload \u0648\u0638\u0627\u06cc\u0641 \u0641\u0634\u0631\u062f\u0647:<\/strong> \u0627\u0632 Worker Threads \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc \u0645\u062d\u062f\u0648\u062f \u0628\u0647 CPU \u0648 Child Processes \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a I\/O-heavy \u06cc\u0627 \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062e\u0627\u0631\u062c\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u2713 <strong>\u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0627\u0646\u06cc\u062a\u0648\u0631:<\/strong> \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0646\u0645\u0627\u06cc\u0647 \u0633\u0627\u0632 \u062f\u0627\u062e\u0644\u06cc Node.js \u0628\u0631\u0627\u06cc \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u062a\u0646\u06af\u0646\u0627\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u2713 <strong>\u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0638\u0631\u0627\u0641\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f:<\/strong> \u0647\u0645\u06cc\u0634\u0647 \u0628\u0647 \u062e\u0637\u0627\u0647\u0627 \u06af\u0648\u0634 \u062f\u0647\u06cc\u062f \u0648 \u0627\u0632 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0634\u06a9\u0633\u062a \u0647\u0627 \u0631\u0633\u06cc\u062f\u06af\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u2713 <strong>\u0645\u0642\u06cc\u0627\u0633 \u0645\u0648\u062b\u0631:<\/strong> \u0627\u0632 \u06af\u0631\u0648\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u06af\u0631 \u06cc\u0627 \u062e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0632\u06cc\u0639 \u0648\u0638\u0627\u06cc\u0641 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0631\u0634\u062a\u0647 \u06cc\u0627 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><strong>\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/strong><\/p>\n<p>Worker Threads \u0648 Child Processes \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 Node.js \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0627\u0632 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u062a\u06a9 \u0631\u0634\u062a\u0647 \u0627\u06cc \u0631\u0647\u0627\u06cc\u06cc \u06cc\u0627\u0628\u0646\u062f. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0648 \u067e\u0627\u0633\u062e\u06af\u0648 \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0647\u0645 \u0648\u0638\u0627\u06cc\u0641 CPU \u0648 \u0647\u0645 I\/O \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f. \u062e\u0648\u0627\u0647 \u062f\u0631 \u062d\u0627\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0635\u0627\u0648\u06cc\u0631\u060c \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u067e\u0648\u0633\u062a\u0647 \u06cc\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0647\u0627 \u0628\u0627\u0634\u06cc\u062f\u060c \u062f\u0631\u06a9 \u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Worker Threads \u0648 Child Processes \u06a9\u0644\u06cc\u062f \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc Node.js \u0634\u0645\u0627 \u0627\u0633\u062a.<\/p>\n<p><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang Worker Threads \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u062f \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062d\u0627\u0641\u0638\u0647 \u0628\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 SharedArrayBuffer \u0648 \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0648\u0638\u0627\u06cc\u0641 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 CPU \u0645\u0627\u0646\u0646\u062f \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0627\u062f\u0647 \u06cc\u0627 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0627\u06cc\u062f\u0647 \u0622\u0644 \u0647\u0633\u062a\u0646\u062f. \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u06a9\u0648\u062f\u06a9 Child &hellip;<\/p>\n","protected":false},"author":2,"featured_media":89024,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-89023","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/89023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=89023"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/89023\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/89024"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=89023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=89023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=89023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}