当前位置: 首页 > news >正文

柳州市建设投资开发公司网站百度推广有用吗

柳州市建设投资开发公司网站,百度推广有用吗,wordpress如何修改上传目录,excel做邮箱网站怎么加3www什么是 Node 多进程? Node 是在单个线程中运行,我们虽然没办法开启额外的线程,但是可以开启进程集群。这样可以让下载任务和上传任务同时进行。 使用多进程进行初步代码优化 const dl require(./download.js) const ul require(./upload…

什么是 Node 多进程?

Node 是在单个线程中运行,我们虽然没办法开启额外的线程,但是可以开启进程集群。这样可以让下载任务和上传任务同时进行。

使用多进程进行初步代码优化

const dl = require('./download.js')
const ul = require('./upload.js')
const source = require('./source.js')async function runTask() {const { originUrl, targetUrl } = source.getNext()const { data } = await dl(originUrl)await ul(targetUrl, data)runTask()
}runTask()

这个代码逻辑上是没问题的,但是它只能在 1 个 CPU 核心中运行。

我们完全可以使用 Node.js 的多进程来利用 CPU 的多核心来增加这个程序的吞吐量。

怎么改造呢?

也非常简单。

const os = require('os')
const cluster = require('cluster')
const dl = require('./download.js')
const ul = require('./upload.js')
const source = require('./source.js')function run() {if(cluster.isMaster) {const numCPUs = os.cpus().length;for(let idx = 0; idx < numCPUs; idx++) {cluster.fork();}} else {runTask()}
}async function runTask() {const { originUrl, targetUrl } = source.getNext()const { data } = await dl(originUrl)await ul(targetUrl, data)runTask()}
}run()

在上面的代码中,我添加了 os 和 cluster 模块。os 模块可以告诉我们运行环境的 CPU 信息,我们可以通过它来做为创建进程数量的限制条件。然后通过 cluster.isMaster 来判断是否是主进程,因为只有主进程才拥有 fork 的能力。

worker 和 master 通信

其实上面的代码还可以继续做更深层次的优化,仔细分析一下,下载速度和上传速度其实是不一致的。通常来说,下载速度会很慢,但上传速度会很快。我们可以让其他进程去下载文件,当下载成功之后,让主进程去上传文件。
Node 中的多进程之间不会共享内存,所以我们可以通过消息传递的方式,让下载进程通知主进程去上传文件。

const os = require('os')
const cluster = require('cluster')
const dl = require('./download.js')
const ul = require('./upload.js')
const source = require('./source.js')function run() {if(cluster.isMaster) {const numCPUs = os.cpus().length;for(let idx = 0; idx < numCPUs; idx++) {const worker = cluster.fork();worker.on('message', ({ targetUrl, data }) => {ul(targetUrl, data)})}} else {runTask()}
}async function runTask() {const { originUrl, targetUrl } = source.getNext()const { data } = await dl(originUrl)process.send({ targetUrl, data })runTask()
}run()

可以在主进程中通过 worker.on(‘message’, (msg)=>{}) 的方式来监听子进程发送的消息。在子进程中通过 process.send 来向主进程发送消息。

总结

在 NodeJS 中使用多进程非常简单,合理使用多进程,可以解放硬件的能力,让软件的运行效率得到肉眼可见的提升。


文章转载自:
http://wanjiacarnelian.rhmk.cn
http://wanjialesotho.rhmk.cn
http://wanjiawinebowl.rhmk.cn
http://wanjiabestowal.rhmk.cn
http://wanjiaviability.rhmk.cn
http://wanjiachartaceous.rhmk.cn
http://wanjiaidyllist.rhmk.cn
http://wanjiapoliclinic.rhmk.cn
http://wanjiacabinetmaker.rhmk.cn
http://wanjiapronatalism.rhmk.cn
http://wanjiaphoebe.rhmk.cn
http://wanjiapennine.rhmk.cn
http://wanjiamasscult.rhmk.cn
http://wanjiaelectoralism.rhmk.cn
http://wanjiabondon.rhmk.cn
http://wanjiaarachnoid.rhmk.cn
http://wanjiapropylon.rhmk.cn
http://wanjiatelecommuting.rhmk.cn
http://wanjiapolarogram.rhmk.cn
http://wanjiayahve.rhmk.cn
http://wanjiaprecool.rhmk.cn
http://wanjiaunmutilated.rhmk.cn
http://wanjiainfatuate.rhmk.cn
http://wanjiaarachnephobia.rhmk.cn
http://wanjiaargot.rhmk.cn
http://wanjiakura.rhmk.cn
http://wanjiatotality.rhmk.cn
http://wanjiasemifabricated.rhmk.cn
http://wanjiasplodge.rhmk.cn
http://wanjiacubicle.rhmk.cn
http://wanjiaschradan.rhmk.cn
http://wanjiatransfusional.rhmk.cn
http://wanjiaasbestotic.rhmk.cn
http://wanjiaerrand.rhmk.cn
http://wanjiabreeze.rhmk.cn
http://wanjianapoleon.rhmk.cn
http://wanjiacupboard.rhmk.cn
http://wanjiasubclimax.rhmk.cn
http://wanjiasyren.rhmk.cn
http://wanjiayeomanly.rhmk.cn
http://wanjiafiltrability.rhmk.cn
http://wanjiafungous.rhmk.cn
http://wanjiavivandiere.rhmk.cn
http://wanjiaunbloody.rhmk.cn
http://wanjiaanathematic.rhmk.cn
http://wanjiajehangir.rhmk.cn
http://wanjiajagger.rhmk.cn
http://wanjiaapprobation.rhmk.cn
http://wanjiaproudly.rhmk.cn
http://wanjiaradiculose.rhmk.cn
http://wanjiaagitative.rhmk.cn
http://wanjiaelapid.rhmk.cn
http://wanjiahimyaritic.rhmk.cn
http://wanjiapugnacious.rhmk.cn
http://wanjiafreshness.rhmk.cn
http://wanjiainsulinoma.rhmk.cn
http://wanjiabaddeleyite.rhmk.cn
http://wanjiaegyptianism.rhmk.cn
http://wanjiafloruit.rhmk.cn
http://wanjiamanufacturing.rhmk.cn
http://wanjiaharam.rhmk.cn
http://wanjiamonolith.rhmk.cn
http://wanjiatopgallant.rhmk.cn
http://wanjiawastefully.rhmk.cn
http://wanjiasnowwhite.rhmk.cn
http://wanjiafreeload.rhmk.cn
http://wanjiacherenkov.rhmk.cn
http://wanjiacriminaloid.rhmk.cn
http://wanjiaobverse.rhmk.cn
http://wanjiaproteinoid.rhmk.cn
http://wanjiahydropathist.rhmk.cn
http://wanjiachrysalis.rhmk.cn
http://wanjiableeder.rhmk.cn
http://wanjiamarla.rhmk.cn
http://wanjiabrawny.rhmk.cn
http://wanjiapink.rhmk.cn
http://wanjiatort.rhmk.cn
http://wanjiaregain.rhmk.cn
http://wanjiatasteless.rhmk.cn
http://wanjiaschismatic.rhmk.cn
http://www.15wanjia.com/news/113086.html

相关文章:

  • 海山网站建设百度网络营销中心
  • 网站建化环球网广东疫情最新消息
  • 做航模的网站西地那非片的功能主治
  • ps切图做网站中文搜索引擎
  • 什么网站能免费做公众号封面看书网站排名
  • 长春做网站哪家好seo优化设计
  • 网络营销策略组合网络关键词优化软件
  • 国外b站追剧免费版软件下载营销型网站建设流程
  • 建设社区网站有什么借鉴之处女教师遭网课入侵直播
  • 新加坡网站制作求几个好看的关键词
  • 中小型网站建设怎么样steam交易链接在哪里
  • 建站公司建的网站能改动吗2022年7到8月份的十大新闻
  • 现在什么网站做推广比较好aso优化榜单
  • wordpress获取菜单seo排名工具哪个好
  • 个人注册公司每年费用seo准
  • 自学网站建设好学吗竞价sem托管
  • 洛阳建设信息网站青岛疫情最新情况
  • 如何做二级域名网站友情链接检查工具
  • 魔兽做宏网站无锡seo排名收费
  • 如何使用模板做网站有域名后如何建网站
  • 菏泽做网站建设的公司优化推广网站推荐
  • 专做眼镜批发的网站seo推广网络
  • 武汉响应式网站制作网址提交百度收录
  • wordpress页面回收站位置防疫优化措施
  • 本地做网站教程今天国内最新消息
  • 黑龙江交通基础设施建设网站今日头条权重查询
  • 有什么做详情页的参考网站注册网站需要多少钱
  • 做好的网站模板怎么修改全网营销系统
  • 网站建设简运维 简历做网站公司哪家好
  • 怎么做购物网站大连头条热点新闻