600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > node--非阻塞式I/O 单线程 异步 事件驱动

node--非阻塞式I/O 单线程 异步 事件驱动

时间:2019-08-24 15:30:45

相关推荐

node--非阻塞式I/O 单线程 异步 事件驱动

1、单线程

不同于其他的后盾语言,node是单线程的,大大节约服务器开支

node不为每个客户创建一个新的线程,仅使用一个线程。通过非阻塞I/O以及

事件驱动机制,使其宏观上看是并发的,可以处理高并发。

2、非阻塞式I/O

1)当我们遭遇异步时,可以通过以下方法解决:

①回调函数

在使用异步的函数时,追加提个回调函数为参数,在使用时传入所需要的回调即可

const fs = require('fs')// 如何解决异步问题?// 方法1:通过回调函数解决function getContent(cb) {fs.readFile('a.txt', (err, data) => {if (err) {console.log(err)return false}cb(data)})}getContent((data) => {console.log(data.toString())})

②使用events模块进行监听

const fs = require('fs')const events = require('events')// 如何解决异步问题?// 方法2:通过node中events模块//我们主要通过EventEmitter对象来进行广播和接收广播const EventEmitter = new events.EventEmitter()//监听to_parent的广播,只进行监听function getContent() {fs.readFile('a.txt', (err, data) => {if (err) {console.log(err)return false}EventEmitter.emit('data',data)})}getContent()EventEmitter.on('data', (data) => {console.log(data.toString())})

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。