Node 的特点以及适合应用的场景

1、异步I/O

异步I/O 相比于同步I/O 效率更高,而且不一样的I/O 之间相互不影响,不阻塞

 

2、事件与回调函数

传递的是事件不是结果。

传递的思路是: 我要干这件事情,我把干这件事情的逻辑告诉你,你调用就可以了。

在javascript中,函数被作为第一等公民对待。函数可以作为一个参数传递。

http.createServer(function(request,response){

	//解析 url 和request string

	var pathName = url.parse(request.url).pathname;

	//解析 

	route(handle,pathName);

	response.writeHead(200,{"Content-Type":"text/plain"});

	response.write('结果');

	response.end();

	}).listen(8890);

 

3、单线程(保持了js 在浏览器中特点)

优点:1、不存在死锁的问题,没有线程上下文交换所带来的性能的开销

   2、单线程,系统开销少,可以胜任密集型I/O应用

  

弱点:无法利用多核cpu

   错误会引起整个应用的退出,很考验应用的健壮性

     大量计算占用cpu 导致无法继续调用异步 I/O (node 采用了与web worker 一致的思路解决大计算量阻塞线程的问题: child_process)

4、跨平台,这个就不多说了 

居于以上node的特点,node 比较适合应用在I/O 密集型场景下,当然在cpu密集型的场景也能够胜任,只是在合理调度这块应该应该多思考,这和其他语言也是一样的。

 

 

 

转载于:https://www.cnblogs.com/wend/p/node_feature.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值