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

做建筑设计的网站推荐/网络营销服务有哪些

做建筑设计的网站推荐,网络营销服务有哪些,网站seo课设,电子商务 做网站关于Node.js的第一个基本概念是I/O操作开销是巨大的: 所以,当前变成技术中最大的浪费来自于等待I/O操作的完成。有几种方法可以解决性能的影响: 同步方式:按次序一个一个的处理请求。利:简单;弊&#xff1a…

关于Node.js的第一个基本概念是I/O操作开销是巨大的:

I/O开销

所以,当前变成技术中最大的浪费来自于等待I/O操作的完成。有几种方法可以解决性能的影响:

  • 同步方式:按次序一个一个的处理请求。利:简单;弊:任何一个请求都可以阻塞其他所有请求。
  • 开启新进程:每个请求都开启一个新进程。利:简单;弊:大量的链接意味着大量的进程。
  • 开启新线程:每个请求都开启一个新线程。利:简单,而且跟进程比,对系统内核更加友好,因为线程比进程轻的多;弊:不是所有的机器都支持线程,而且对于要处理共享资源的情况,多线程编程会很快变得太过于复杂。

第二个基本概念是每个连接都创建一个新线程是很消耗内存的(例如:你可以对比Nginx回想一下Apache内存耗尽的情景)。

Apache是多线程的:它为每个请求开启一个新的线程(或者是进程,这取决于你的配置),当并发连接增多时,你可以看看它是怎么一点一点耗尽内存的。Nginx和Node.js不是多线程的,因为线程的消耗太“重”了。它们两个是单线程、基于事件的,这就把处理众多连接所产生的线程/进程消耗给消除了。

Node.js中你的代码运行在单线程之中

确实只有一个线程:你不能并行执行任何代码,比如:下面的“sleep”将会阻塞sever1秒钟:

while(new Date().getTime() < now + 1000) { // do nothing }

当这段代码运行时,Node.js不会响应客户端任何请求,因为只有一个线程来运行你的代码,另外,如果你执行cpu密集的任务,比如重设图像的大小,它也会阻塞所有请求。

……然而,除了你的代码,其它的一切都是并行执行的

单线程没法让代码并行执行。但是所有I/O操作都是事件驱动、并行的,所以下面的代码不会阻塞server:

c.query( 'SELECT SLEEP(20);', function (err, results, fields) { if (err) { throw err; } res.writeHead(200, {'Content-Type': 'text/html'}); res.end('<html><head><title>Hello</title></head><body><h1>Return from async DB query</h1></body></html>'); c.end(); } );

如果你在一次请求中执行这些,当数据库sleep时,其他请求也会立即被处理。

为什么异步比较好?什么时候我们应该从同步转移到异步/并行执行呢?

同步执行也不错,因为它简便了我们敲代码。但在使用异步时,你不必关心后端是怎么处理的。而且,在I/O操作时不会阻止其他请求,同时无需承担每个请求所产生的线程/进程的成本。

I/O操作时使用异步处理很好,因为I/O操作的成本比单纯执行代码要高的多,我们应该在等待I/O时做其它更有意义的工作。

Node.js event loop

Event loop是指处理外部事件,并把外部事件转换为回调来进行调用的实体(晦涩难懂!!原文:an entity that handles and processes external events and converts them into callback invocations).所以,I/O调用的同时,server就可以去处理另一个请求。在一次I/O调用中,你的代码保存回调函数并把控制权交回到node.js运行时。当数据加载完毕可以访问时,就可以执行回调函数了。

当然,在后端有很多数据库接入和处理的进程。但是,这些都不需要通过你的代码直接实现,你也就不必了解后台I/O之间的相互作用关系。和Apache相比,省去了很多线程消耗,因为不是每个链接都需要新线程,仅那些需要并行运行的才需要新线程。

不只是I/O调用,Node.js期望所有的请求都能快速的响应,比如CPU密集的工作应该分离到其他进程,你可以使用事件和他交互。

内部实现

在内部,Node.js依赖libev来提供event loop,使用线程池来提供异步I/O。

http://www.lbrq.cn/news/767719.html

相关文章:

  • 微信开发小程序开发网站建设/扬州seo优化
  • 专门做颜料的网站/网页制作官方网站
  • 靓号网站建设/优化网站seo方案
  • 文字图片一键生成器/网站优化包括哪些
  • 鹤壁百度网站建设/简单免费制作手机网站
  • wordpress 收藏/宁波百度seo点击软件
  • 网站建设公司找哪家好/全球新冠疫情最新消息
  • 教学网站建设/今天的新闻联播
  • 南昌企业免费建站/营销策略方案
  • 个人备案网站做企业会怎样/竞价推广的企业
  • 在手机上怎么做微电影网站吗/重庆网站建设推广
  • asp网站图片不显示/seosem是指什么意思
  • 青海省建设厅报名网站/百度一下电脑版网页
  • 专业网站建设咨/株洲seo优化首选
  • 东莞网站建设设计公司/网络营销策划方案书范文
  • 浙江省城乡建设厅官方网站/网络营销推广的特点
  • 武昌手机网站/sem分析是什么
  • 网站建设的价值/网页设计培训
  • 企业网站一般用什么框架做/广东深圳龙华区
  • 网站建设属于应用软件吗/seo综合查询中的具体内容有哪些
  • 做网站多少分辨率就可以/免费招聘信息发布平台
  • 如何利用视频网站做推广/域名大全查询
  • 数据库和网站开发/策划网络营销方案
  • 佛山网站优化效果/青岛疫情最新情况
  • vps如何限制网站网速/抖音营销推广怎么做
  • 做柱状图好看的网站/企业关键词优化专业公司
  • 淘宝代运营公司一般怎么收费的/seo服务公司
  • 网站建设的大公司好/外链优化
  • 网站建设销售好做吗/推荐6个免费国外自媒体平台
  • 合肥专业做网站的公司哪家好/百度成都总部
  • 数巅中标中建科技AI知识库项目,开启建筑业数智化新篇章
  • 带环链表详解:环形链表检测与入环节点查找
  • 当img占不满div时,图片居中显示,两侧加当前图片模糊效果
  • 一条n8n工作流
  • SQL详细语法教程(二)--DML(数据操作语言)和DQL(数据查询语言)
  • golang的继承