首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

reids用过单线程还是多线程?

我们都知道,Node 中最核心的 v8 引擎,在 Node 启动后,会创建 v8 的实例,这个实例多线程的 某些异步 IO 会占用额外的线程 还是上面那个例子,我们在定时器执行的同时,去读一个文件:...Nodejs一直以单线程异步IO著称,擅长IO密集型操作,不擅长CPU密集型操作。 每日一问11-线程使用场景(Node.js,Redis ,Memcached) ?...Nodejs多线程种类 Node.js 中有三类线程 (child_process 和 cluster 的实现均为进程) 1. event loop的主线程 2. libuv的异步I/O线程池 3. worker_threads...1. event loop的主线程 2. libuv的异步I/O线程池 3. worker_threads的线程 ? ? 这里刚刚开始,reids用过单线程还是多线程? ?...不是多线程

70520

一个前端失业者的面试之旅

对前后端跨域可以说一下?有碰到过跨域问题?如何解决跨域的? 介绍一下对nodejs异步IO原理。 一道简单的算法题,实现输入一个字符串,返回字符串翻转输出。...对nodejs的进程维护有了解过么?你们有遇到过nodejs一些内存泄露方面的问题?说一下内存泄露。 之前用redis做缓存中间件是为了解决什么问题?说一下你们关于redis的设计架构。...说一下nodejs里对Buffer数据类型的认识,对于初始化的Buffer,可以实现增加长度? 对nodejs异步IO的认识,异步IO内部的工作原理,以及内部线程池相关内容。...^O^ nodejs中的异步回调中的错误怎么处理。 闭包为什么会造成内存泄漏? javascript的垃圾回收机制讲一下。 了解express的内部原理么?简单实现一下。...nodejs事件循环怎么理解?事件循环里各个阶段的认识。 第二面 Nodejs的内部运行机制,异步非阻塞IO与事件循环原理,事件循环中的每个阶段描述。 前端数据流管理工具用过哪些?

95040
您找到你想要的搜索结果了吗?
是的
没有找到

nodejs基本原理总结

一. nodejs背景 先来说说nodejs最常被提到的几个关键词,“单线程”,“非阻塞异步IO”,“事件循环”。接下来主要来通过这几个关键字总结一下nodejs的内在原理,以及引申出的一些问题。...二. nodejs单线程?...---- 那为什么说nodejs单线程语言呢?而是因为nodejs中javascript代码的执行单线程,怎么理解这句话,看下面代码。...三. nodejs异步IO 再拿上面的例子来看,当100个用户请求同时被接受到时,当需要IO(网络IO/文件IO)操作时,单线程的javascript并不会停下来等待IO操作完成,而是“事件驱动”开始介入...可以思考一下,读操作线程池来控制执行的,在该线程执行前,先在注册事件的内存中初始化一个状态“执行中”,并且事件循环也已经被激活,开始轮询等待执行结果,当执行IO的线程在执行完之后,再通过底层的异步IO

1.1K50

模块化

: 异步删除文件夹 events Events: 事件模块 ------在node.js中对事件的操作 在nodejs中很多任务都是由事件驱动的...----removeListener: 删除单个事件监听 ------removeAllListeners: 删除所有事件监听 addListener: 在nodejs程序中添加一个事件监听器...流 -- stream 在nodejs中流一个核心模块,返回的一个函数。...中的流就跟水流,电流,血流一样的概念,字节流 字节流 先得有储存字节的地方,流出来才会形成字节流 ----文件中储存的不就都是字节 读流 “data” : 当文件中有数据出来时,会触发’data事件...“end”: 当数据结束时,会发送’end’事件 写流 Write(): 向文件中写入相关内容 End(): 写入完毕 Pipe一个流方法,只能通过流调用,参数也是流

1.8K20

nodejs事件事件循环简介

同样的nodejs中也有事件,并且还有一个专门的events模块来进行专门的处理。 同时事件事件循环也是nodejs构建异步IO的非常重要的概念。 今天我们来详细了解一下。...事件 nodejs事件提供了一个专门的模块:lib/events.js。 还记得我们在讲使用nodejs构建web服务器?...nodejs的核心API基于异步事件驱动来进行架构的,所以nodejs中有非常多的事件。...这样可以确保事件的正确排序,并有助于避免竞态条件和逻辑错误。 如果需要异步执行,则可以使用setImmediate() 或者 process.nextTick()来切换到异步执行模式。...removeAllListeners(): 移除事件的所有监听器 事件循环 我们知道nodejs的代码运行在单线程环境中的,每次只会去处理一件事情。

78141

nodejs事件事件循环简介

同样的nodejs中也有事件,并且还有一个专门的events模块来进行专门的处理。 同时事件事件循环也是nodejs构建异步IO的非常重要的概念。 今天我们来详细了解一下。...事件 nodejs事件提供了一个专门的模块:lib/events.js。 还记得我们在讲使用nodejs构建web服务器?...nodejs的核心API基于异步事件驱动来进行架构的,所以nodejs中有非常多的事件。...这样可以确保事件的正确排序,并有助于避免竞态条件和逻辑错误。 如果需要异步执行,则可以使用setImmediate() 或者 process.nextTick()来切换到异步执行模式。...removeAllListeners(): 移除事件的所有监听器 事件循环 我们知道nodejs的代码运行在单线程环境中的,每次只会去处理一件事情。

98850

nodejs事件事件循环简介

同样的nodejs中也有事件,并且还有一个专门的events模块来进行专门的处理。 同时事件事件循环也是nodejs构建异步IO的非常重要的概念。 今天我们来详细了解一下。...事件 nodejs事件提供了一个专门的模块:lib/events.js。 还记得我们在讲使用nodejs构建web服务器?...nodejs的核心API基于异步事件驱动来进行架构的,所以nodejs中有非常多的事件。...这样可以确保事件的正确排序,并有助于避免竞态条件和逻辑错误。 如果需要异步执行,则可以使用setImmediate() 或者 process.nextTick()来切换到异步执行模式。...removeAllListeners(): 移除事件的所有监听器 事件循环 我们知道nodejs的代码运行在单线程环境中的,每次只会去处理一件事情。

81840

彻底搞懂nodejs事件循环_2023-03-15

nodejs单线程执行的,同时它又是基于事件驱动的非阻塞IO编程模型。这就使得我们不用等待异步操作结果返回,就可以继续往下执行代码。当异步事件触发之后,就会通知主线程,主线程执行相应事件的回调。...以上众所周知的内容。今天我们从源码入手,分析一下nodejs事件循环机制。...undefinedlibuv:用C语言实现的一套异步功能库,nodejs高效的异步编程模型很大程度上归功于libuv的实现,而libuv则是我们今天重点要分析的。...libuv 架构我们知道,nodejs实现异步机制的核心便是libuv,libuv承担着nodejs与文件、网络等异步任务的沟通桥梁,下面这张图让我们对libuv有个大概的印象:图片这是libuv官网的一张图...既然谈到了异步,那么我们首先归纳下nodejs里的异步事件:非I/O:定时器(setTimeout,setInterval)microtask(promise)process.nextTicksetImmediateDNS.lookupI

95830

彻底搞懂nodejs事件循环

nodejs单线程执行的,同时它又是基于事件驱动的非阻塞IO编程模型。这就使得我们不用等待异步操作结果返回,就可以继续往下执行代码。当异步事件触发之后,就会通知主线程,主线程执行相应事件的回调。...以上众所周知的内容。今天我们从源码入手,分析一下nodejs事件循环机制。...undefinedlibuv:用C语言实现的一套异步功能库,nodejs高效的异步编程模型很大程度上归功于libuv的实现,而libuv则是我们今天重点要分析的。...nodejs进阶视频讲解进入学习libuv 架构我们知道,nodejs实现异步机制的核心便是libuv,libuv承担着nodejs与文件、网络等异步任务的沟通桥梁,下面这张图让我们对libuv有个大概的印象...}}uv__io_poll阶段源码最长,逻辑最为复杂,可以做个概括,如下:当js层代码注册的事件回调都没有返回的时候,事件循环会阻塞在poll阶段。看到这里,你可能会想了,会永远阻塞在此处

1K20

我已经迷失在事件环(event-loop)中了【Nodejs篇】

我第一次看到他事件环(event-loop)的时候,我一脸懵,这是什么鬼,是什么循环,为什么event还要loop,不是都是一次性的?...浏览器中和nodejs环境中的事件有一些区别的,这里我只研究了nodejs环境,小黑框情况下的事件环。...事件环很复杂,这里我只有能力解释事件环中的几个点: node.js中对于事件环的解释 宏任务(macro-task),微任务(micro-task) node.js中对于事件环的解释 nodejs中将eventloop...poll 这个阶段,会先执行符合条件的微任务,比如Promise的异步完成,如果setImmediate,则只会执行,不执行他的callback,然后执行定时器的callback,比如timeout。...微任务 就是宏任务执行时,产生的新的小任务,比如异步,此类任务称之为微任务,一般在当前宏任务执行完之后“插队”执行。 微任务代表:process.nextTick, Promise(原生)。

75310

大厂的面试题

说说hash路由和history路由,你能自己编写一个前端路由? 你能手写vuex状态管理? 你能开发自己的组件库(树组件,日期组件,表格组件)?...第二部分 vue里面的虚拟dom怎么回事 vue双向绑定讲一讲 讲vue-lazyloader的原理,手写伪代码 讲express框架的设计思想 讲事件循环 讲nodejs的eventEmitter的实现...讲express的中间件系统如何设计的 使用es5实现es6的class websocket握手过程 浏览器的事件循环和nodejs事件循环的区别 JavaScript的sort方法内部使用的什么排序...SSR 和 客户端渲染有什么区别 , vue如何实现绑定事件的 ? 移动端300ms延时的原因? 如何处理? 主流框架的数据单向/双向绑定实现原理 ?...http和https区别 https建立的过程 setState什么时候同步,什么时候异步的 从数组中找出三数之和为n vue和react的区别 react fiber架构的理解 node主要用来解决什么问题

1.7K20

初试以知识管理的方式--领读 《深入浅出nodeJs

就比如我今天在网上看到一些nodeJs方面的文章,nodeJs现在已经完全的无法忽视了,但我本人需求驱动型的学习习惯,就是一个东西如果没什么用,我就未必会去主动的学它。...所以我马上就百度查了一下“nodeJs有什么用” ? ,然后看了几篇文章之后, 明白了它是事件驱动的,异步,低阻塞,适合大并发,应用JS语法,运行V8 JavaScript的运行在服务端的程序。...那它是服务器?你可以说它是,也可以说它不是。简单的来讲,如果运行在服务端,提供运行环境,并提供了Tomcat之类的功能,那它就是个服务器了。...在我个人的一目十行的阅读中,我觉得在第2页,1.2.1中有一句话,“最初的目标写一个基于事件驱动,非阻塞I/O的web服务器,以达到更高的性能,,,”这句话很重要,它事实上定义了NODEJS的出现的原因...内容大意这样的,NODE和浏览器非常类似,都是基于事件驱动的异步架构。在NODE中,JS可以访问本地方,可以搭建服务端,可以直接操作数据库。

58260

Nodejs探秘:深入理解单线程实现高并发原理

导语:在我接触Nodejs的时候,听的最多的关键字就是:事件驱动、非阻塞I/O、高效、轻量,单线程且支持高并发的脚本语言。可为什么单线程的nodejs可以支持高并发呢?...并且,通过底层C/C++源码的学习,来剖析Nodejs实现高并发的之一------事件循环的实现。...于是在我们刚接触Nodejs时,会有所疑问: 1、为什么在浏览器中运行的Javascript 能与操作系统进行如此底层的交互?   2、nodejs 真的单线程?...3、如果单线程,他如何处理高并发请求的? 4、nodejs 事件驱动如何实现的? 等等。。。 看到这些问题,是否有点头大,别急,带着这些问题我们来慢慢看这篇文章。...Libuv:它为 Node.js 提供了跨平台,线程池,事件池,异步 I/O 等能力, Node.js 如此强大的关键。 C-ares:提供了异步处理 DNS 相关的能力。

3K41

关于NodeJS工作原理的五个误解

如上图所示,NodeJS 一个由大量有趣的基础模块构建的大型平台。...NodeJS 事件循环 NodeJS 的核心,它为 NodeJS 提供了异步的,非阻塞的 I/O 机制。它以特定顺序处理来自不同类型的异步事件的完成事件。...相反,NodeJS Event Emitter 一个核心的 NodeJS API,它允许你将监听器函数附加到一个特定的事件,这个事件一旦触发就会被调用。...存储此信息的数据结构只是一个普通的老式 JavaScript 对象,其中对象属性事件名称,属性的值一个侦听器函数或侦听器函数数组。...根据这个定义,如果给你一个函数,你可以确定给定的函数异步的: 调用本地 JavaScript / 异步NodeJS 功能(例如,setTimeout,setInterval,setImmediate

1.5K20

高性能Web服务端 PHP vs Node.js vs Nginx-Lua 的对比分析

1. ngx_lua nodejs php 比较 我在研究一阵子ngx_lua之后发现lua语法和js真的很像,同时ngx_lua模型也是单线程的异步事件驱动的,工作原理和nodejs相同,代码甚至比...nodejs异步回调更好写一些。...引自: PHP vs Node.js vs Nginx-Lua 以下从占用的资源上来分析: ?...而且ngx_lua 已经有很多广泛的应用 可以说技术上来说已经很成熟了,你们的平台一个OPANAPI的应用 。所以 在这个上 选ngx_lua 对的 !当然这并不是说NODE不好 !...以下测试用例为使用mongodb添加删除数据时,各个语言每秒处理的最大请求数: 由上图可以看出,在并发线程达到一定程度时go和php写的测试脚本都挂了(go不是号称最快?)

2.9K50

宏任务和微任务的一个小事

当触发某个事件时,有单线程线性执行,这时不仅仅可能线程中正在执行其他任务,使得当前事件不能立即执行,更可能考虑到直接执行当前事件导致的线程阻塞影响执行效率的原因。...这就是一个最简单的事件机制模型。 浏览器的事件回调,其实就是一种异步的回调机制。常见的异步过程有两种典型代表。...而在没有微任务的时代,JavaScript的执行中并没有所谓异步执行的概念,异步执行在宿主环境中实现的,也就是浏览器提供了。...四、Nodejs环境中的区别 这是在浏览器搭载v8引擎的情况下,我们验证了宏任务和微任务的执行机理,那在Nodejs中运行JavaScript代码会有什么不同?...而在11版本后,Nodejs修改成了与浏览器一样的遵循定义的执行方式。 对于早于11版本的Nodejs的实现,可能由于嵌套任务存在的可能性。

1.2K40
领券