new Worker(filename[, options])
filename<string> | <URL> Worker 主脚本或模块的路径。必须是绝对路径或相对路径(即相对于当前工作目录的路径),以./或../开头,或使用file:或data:协议的 WHATWGURL对象。当使用data:网址 时,数据会根据 MIME 类型通过 ECMAScript 模块加载器 进行解析。如果options.eval是true,则这是一个包含 JavaScript 代码的字符串,而不是路径。options<Object>argv<any[]> 将会被转换为字符串并附加到工作线程中的process.argv的参数列表。这与workerData十分相似,但这些值可以在全局process.argv上访问,就好像它们作为 CLI 选项传递给脚本一样。env<Object> 如果设置,指定 Worker 线程内部process.env的初始值。作为一个特殊值,可以使用worker.SHARE_ENV来指定父线程和子线程应共享它们的环境变量;在这种情况下,对一个线程的process.env对象所做的更改也会影响另一个线程。默认值:process.env。eval<boolean> 如果true且第一个参数是string,则将构造函数的第一个参数解释为一段在工作线程上线后执行的脚本。execArgv<string[]> 传递给工作线程的节点 CLI 选项列表。V8 选项(例如--max-old-space-size)和影响进程的选项(例如--title)不受支持。如果设置了,将在工作线程中作为process.execArgv提供。默认情况下,选项将从父线程继承。stdin<boolean> 如果设置为true,那么worker.stdin会提供一个可写流,其内容在 Worker 内显示为process.stdin。默认情况下,不提供任何数据。stdout<boolean> 如果设置为true,那么worker.stdout不会自动传递到父级的process.stdout。stderr<boolean> 如果设置为true,那么worker.stderr不会自动传递到父级的process.stderr。workerData<any> 任何被克隆并作为require('node:worker_threads').workerData提供的 JavaScript 值。克隆按照 HTML 结构化克隆算法 中描述的方式进行,如果对象无法被克隆(例如因为它包含function)则会抛出错误。trackUnmanagedFds<boolean> 如果设置为true,那么 Worker 会跟踪通过fs.open()和fs.close()管理的原始文件描述符,并在 Worker 退出时关闭它们,类似于通过FileHandleAPI 管理的其他资源,如网络套接字或文件描述符。此选项会自动被所有嵌套的Worker继承。默认值:true。transferList<Object[]> 如果在workerData中传入一个或多个类似MessagePort的对象,则这些项目需要transferList,否则将抛出ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST。有关详细信息,请参见port.postMessage()。resourceLimits<Object> 新 JS 引擎实例的可选资源限制集合。达到这些限制会导致Worker实例被终止。这些限制仅影响 JS 引擎,不会影响外部数据,包括不会影响ArrayBuffer。即使设置了这些限制,如果遇到全局内存不足的情况,进程仍可能中止。maxOldGenerationSizeMb<number> 主堆的最大大小,单位为 MB。如果设置了命令行参数--max-old-space-size,将会覆盖此设置。maxYoungGenerationSizeMb<number> 最近创建对象的堆空间最大大小。如果设置了命令行参数--max-semi-space-size,它将覆盖此设置。codeRangeSizeMb<number> 用于生成代码的预分配内存范围的大小。stackSizeMb<number> 线程的默认最大堆栈大小。较小的值可能导致 Worker 实例无法使用。默认值:4。
name<string> 用于调试/识别的可选name,将附加到工作线程标题上,使最终标题为[worker ${id}] ${name}。默认值:''。