node

65 阅读1分钟

5.说说 commonjs 跟 esmodule 区别

6.说说 tree Shaking 原理

7.说说 nodejs 中的 EventEmitter 事件订阅机制,如何实现一个 eventEmitter

8.Nodejs 如何利用多核 CPU?

在 Node.js 中,JS 也是单线程的,只有一个主线程用于执行任务。但是,在 Node.js 中可以使用多进程来利用多核机器,以充分利用 CPU 系统资源。

Node.js 提供了 cluster/child_process 模块,可以轻松创建子进程来处理任务。通过将任务分配给不同的子进程,每个子进程可以在自己的线程上执行任务,从而实现多核机器的利用。 Node.js 也提供了 worker_threads 模块,可以创建真正的多线程应用程序。这个模块允许开发者创建和管理多个工作线程,每个线程都可以独立地执行任务。 Node.js 中的 worker_threads[4] 模块是用于创建多线程应用程序的官方模块。它允许在 Node.js 程序中创建和管理真正的操作系统线程,以实现并行处理和利用多核 CPU 的能力。

利用的是 Node.js 的事件循环机制和异步非阻塞的 I/O操作。Node.js 使用事件驱动的模型来处理请求,当有请求到达时,Node.js 将其放入事件队列中,然后通过事件循环来处理这些请求。在等待 I/O 操作的过程中,Node.js 不会阻塞其他请求的处理,而是继续处理其他请求。这样,即使 JavaScript 是单线程的,但在实际运行中,多个请求可以同时处理,充分利用了多核系统的能力。