卜娃娃|nodejs 的融会贯通,你学会了吗?( 五 )
worker_thread 模块中有 4 个对象和 2 个类
- isMainThread: 是否是主线程 , 源码中是通过 threadId === 0 进行判断的 。
- MessagePort: 用于线程之间的通信 , 继承自 EventEmitter 。
- MessageChannel: 用于创建异步、双向通信的通道实例 。
- threadId: 线程 ID 。
- Worker: 用于在主线程中创建子线程 。 第一个参数为 filename , 表示子线程执行的入口 。
- parentPort: 在 worker 线程里是表示父进程的 MessagePort 类型的对象 , 在主线程里为 null
- workerData: 用于在主进程中向子进程传递数据(data 副本) isMainThread, parentPort, workerData, threadId, MessageChannel, MessagePort, Worker } = require('worker_threads'); function mainThread() { for (let i = 0; i < 5; i++) { const worker = new Worker(__filename, { workerData: i }); worker.on('exit', code => { console.log(main: worker stopped with exit code ${code}); }); worker.on('message', msg => { console.log(main: receive ${msg}); worker.postMessage(msg + 1); }); } } function workerThread() { console.log(worker: workerDate ${workerData}); parentPort.on('message', msg => { console.log(worker: receive ${msg}); }), parentPort.postMessage(workerData); } if (isMainThread) { mainThread(); } else { workerThread(); }
const assert = require('assert');const {Worker,MessageChannel,MessagePort,isMainThread,parentPort} = require('worker_threads');if (isMainThread) {const worker = new Worker(__filename);const subChannel = new MessageChannel();worker.postMessage({hereIsYourPort: subChannel.port1}, [subChannel.port1]);subChannel.port2.on('message', (value) => {console.log('received:', value);});} else {parentPort.once('message', (value) => {assert(value.hereIsYourPort instanceof MessagePort);value.hereIsYourPort.postMessage('the worker is sending this');value.hereIsYourPort.close();});}复制代码多进程 vs 多线程进程是资源分配的最小单位 , 线程是CPU调度的最小单位最后 , 咱给小编:
1. 点赞+关注
2. 点头像关注后多多评论 , 转发给有需要的朋友 。
【卜娃娃|nodejs 的融会贯通,你学会了吗?】谢谢!!
推荐阅读
- 点亮精彩生活|“芭比娃娃”卸妆火了!当素颜曝光那一刻,网友:吓的我一哆嗦!
- 琉璃娃娃的梦|最经典的“许仙”反串女演员叶童结婚多年无子,近照流出老态尽显
- 帅不过三秒|求赵露思别再穿娃娃裙了,裙摆只是加了层褶,腿就显瘦到我崩溃
- 琉璃娃娃的梦|李佳琦也要出道拍戏?古装造型帅如邓伦,网红逆袭成功好励志
- 卜娃娃|音视频开发4. ZLMediaKit库入门使用 编译安装
- 养生知多少|张佳宁看着哪里像30岁?穿蕾丝娃娃领波点裙,就是个18岁小姐姐
- 卜娃娃|飒粉福利|瞧,她在丽江嗨.....
- 日剧盘点|这仍是我熟悉的张雪迎吗?麻花辫配娃娃裙,简直软萌到不像话
- 穿搭|柳岩这回把好身材都藏起来,吊带娃娃装配开叉裤,不露反而更气质
- 卜娃娃|能听声辨位、追踪脚步,这个智能摄像头还是小黄人
