nodejs 非异步I/O API
来源:互联网 发布:淘宝云客服怎么报名 编辑:程序博客网 时间:2024/05/16 13:53
1、函数非异步执行顺序
function A(){};
function B(){};
function C(){}:
2、函数使用Immediate 方法
function A(){};
setImmediate(B(){});
function C(){}:
3、使用process.nextTick();
function A(){};
process.nextTick(B(){});
C();
执行顺序:
process.nextTick() > setImmediate();
process.nextTick(function () { console.log("this is nextTick");});setImmediate(function () { console.log("this is immediate"); setImmediate(function () { console.log("this is 2immediate"); }); process.nextTick(function () { console.log("this is 2nextTick"); });});console.log("this is event");//结果this is event;this is nextTick;this is immediate;this is 2nextTick;this is 2immediate;
在nodejs中 事件的执行过程大概分三个步骤
1、异步调用 即是最开始的发起异步 例如fs.open(),执行fs.open 之后 ,node 将会封装这个请求对象,并将这个请求对象放进线程池
2、 线程池 线程池收到这个请求 并且当前有线程可用 ,于是执行请求对象。将执行完成的结果放在请求对象中,然后将请求对象交给事件循环的观察者。然后回收线程。
3、事件循环 这是node本身维持的一个循环队列,从观察者取到可用的请求对象 然后执行回调函数。
process.nextTick(),setImmediate() 和setTimeout()以及 setInterval 都是属于最后一步 事件循环 。区别在于
process.nextTick() 属于 idle观察者
setImmediate() 属于 check 观察者
在同一级中 idle观察者优先级 >io观察者优先级> check观察者优先级
示例
process.nextTick(function () { console.log("this is nextTick");});setImmediate(function () { console.log("this is immediate");});setTimeout(function () { console.log("this is setTimeout")},0);console.log("this is I/O event");//结果this is I/O eventthis is nextTickthis is setTimeoutthis is immediate
0 0
- nodejs 非异步I/O API
- Nodejs 异步 I/O
- nodejs-异步I/O
- NodeJS -- 异步I/O
- nodejs之异步I/O
- NodeJS异步I/O解析
- 异步非i/o操作和异步i/o
- 深入浅出NodeJS——异步I/O
- nodejs 异步I/O和事件驱动
- NodeJS中的异步I/O、事件驱动
- nodejs异步I/O和事件循环
- 同步异步阻塞非阻塞I/O
- I/O 阻塞&非阻塞&同步&异步
- Thrift 非阻塞异步I/O例子
- I/O模型:同步I/O和异步I/O,阻塞I/O和非阻塞I/O
- RDP(可靠UDP协议)Socket API高性能扩展接口: 异步非阻塞I/O(RDPAIO API)
- 同步I/O(阻塞I/O),异步I/O(非阻塞)
- 阻塞与非阻塞I/O,I/O复用,同步和异步I/O
- 如何利用PS设计表情包和动态表情图
- Log4J配置详细
- C# 合并多个结构相同的DataTable
- #学志#项目进度03
- 两个数字之和等于sum
- nodejs 非异步I/O API
- Fragment总结
- memcache初探
- h5页面基础:自适应移动端
- iCloudManager for Docker 通用负载均衡操作指南
- 父页面用Iframe加载子页面时,获取子页面title!
- 准备3年,腾讯和阿里的疯狂补贴能让多少人暴富?(移动支付收银系统源码)
- AWK文本过滤器
- ZOJ