加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Node.js多线程完全指南

发布时间:2019-03-29 23:33:40 所属栏目:建站 来源:疯狂的技术宅
导读:副标题#e# 很多人都想知道单线程的 Node.js 怎么能与多线程后端竞争。考虑到其所谓的单线程特性,许多大公司选择 Node 作为其后端似乎违反直觉。要想知道原因,必须理解其单线程的真正含义。 JavaScript 的设计非常适合在网上做比较简单的事情,比如验证表

在工作线程中:

  1. import { workerData } from 'worker_threads';  
  2. console.log(workerData.property); 

parentPort

前面提到的 MessagePort 实例,用于与父线程通信。

threadId

分配给 worker 的唯一标识符。

现在我们知道了技术细节,接下来实现一些东西并在实践中检验学到的知识。

实现 setTimeout

setTimeout 是一个无限循环,顾名思义,用来检测程序运行时间是否超时。它在循环中检查起始时间与给定毫秒数之和是否小于实际日期。

  1. import { parentPort, workerData } from 'worker_threads';  
  2. const time = Date.now();  
  3. while (true) {  
  4.     if (time + workerData.time <= Date.now()) {  
  5.         parentPort.postMessage({});  
  6.         break;  
  7.     }  

这个特定的实现产生一个线程,然后执行它的代码,最后在完成后退出。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读