Node.js 是单线程的。它的线程模型是基于事件驱动的非阻塞 I/O 模型。Node.js 启动时,会创建一个主线程,用于处理用户输入、输出等任务。当需要执行一个任务时,主线程会将任务添加到事件队列中,然后继续执行其他任务。当事件队列中的任务完成后,主线程会从事件队列中取出一个任务并执行。这种线程模型使得 Node.js 能够高效地处理 I/O 密集型任务,同时保持较低的内存占用。