Node.js 真·多线程 Worker Threads 初探

  • Post author:
  • Post category:其他


基本信息

笔者在 Node.js 最新的开发版本 v11.4.0 上测试该特性,目前需要添加 flag 才能引入 Worker Threads,例如:

node --experimental-worker index.js

Worker Threads 特性是在2018年6月20日的 v10.5.0 版本引入的:


node/CHANGELOG

目前该模块处于 Stability 1 – Experimental 阶段,改动会较大,不建议用于生产环境。


模块接口

const {
  isMainThread, parentPort, workerData,
  threadId, MessageChannel, MessagePort, Worker
} = require('worker_threads');

该模块对象和类非常少,只有4个对象和3个类。

  • isMainThread:false 表示当前为 worker 线程,false 表示为主线程

  • parentPort: 在 worker 线程里是表示父进程的 MessagePort 类型的对象,在主线程里为 null

  • workerData: 在 worker 线程里是父进程创建 worker 线程时的初始化数据,



版权声明:本文为azard5原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。