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

本文介绍了Node.js的实验性特性Worker Threads,包括其基本概念、模块接口、内存模型变更以及两个实用样例。通过Worker Threads,开发者可以在Node.js中实现真正的多线程,替代之前的cluster和child_process模块。文章强调了Worker Threads目前的实验性质,不宜用于生产环境,并展望了未来框架和库的更新方向。
摘要由CSDN通过智能技术生成

基本信息

笔者在 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 线程时的初始化数据,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值