Sobes.tech
Junior — Middle

How is multithreading implemented in the Node.js environment?

sobes.tech AI

Answer from AI

Node.js is originally single-threaded and uses an event-driven model with an event loop to handle asynchronous operations.

To implement multithreading in Node.js, the following approaches are used:

  • Worker Threads — a module that allows creating additional threads to perform CPU-intensive tasks in parallel with the main thread.

  • Child Processes — creating child processes to perform tasks outside the main Node.js process.

  • Clustering (Cluster module) — allows running multiple instances of Node.js to distribute the load across multiple CPU cores.

Example of using Worker Threads:

const { Worker } = require('worker_threads');

const worker = new Worker(`
  const { parentPort } = require('worker_threads');
  parentPort.postMessage('Hello from worker');
`, { eval: true });

worker.on('message', message => {
  console.log(message);
});

Thus, Node.js provides multithreading through additional modules while maintaining the efficiency of the single-threaded event loop for I/O operations.