美文网首页
深入浅出nodejs记录

深入浅出nodejs记录

作者: 笑执清茶 | 来源:发表于2018-07-03 11:12 被阅读0次

要看的书太多,时间太紧看不完,挑核心的部分记录一下。

一、单线程最大好处是不用像多线程编程那样处处在意状态同步问题,没有死锁,没有线程上下文交换所带来的性能上的开销

缺点:

1.无法利用多核CPU

2.错误会引起整个应用退出,应用健壮性值得考验

3.大量计算占用CPU导致无法继续调用异步I/O(解决:适当调整和分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起,这样既可同时享受到并行异步I/O的好处,又能充分利用CPU)

二、node采用webworker相同思路解决单线程大量计算问题:child_process(子进程)

三、问题:进程和线程区别?

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。

线程:是进程的一个执行单元,是进程内部调度实体,是处理器调度的基本单位,是比进程更小的独立运行的基本单位。线程也被称为轻量级进程。

一个程序至少一个进程,一个进程至少一个线程。

地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。

资源拥有:1.同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。2.进程切换时,消耗的资源大,效率高。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。

四、node 应用场景:擅长I/O密集型应用场景

I/O密集优势主要在于node利用事件循环的处理能力,而不是启用每一个线程为每个请求服务,占用资源极少

五、node单线程仅仅是js执行在单线程,在node中无论是*nix还是windows平台,内部完成I/O任务另有线程池

六、node中定时器精确度不够,改用process.nextTick()方法更高效,每次调用process.nextTick()方法,只会将回调函数放入队列中,在下一轮Tick时取出执行。

process.Tick()和setImmediate()有细微差别,差别在于process的回调函数优先级要高于setImmediate(也就是执行console.log会先输出)

七、异步实现的核心:事件循环

进程启动时,node会创建一个类似于while(true)的循环,每次执行一次循环体的过程称为Tick,每个Tick的过程就是查看是否有事件待处理,如果有,就取出事件及其相关的回调函数。如果存在关联的回调函数,就执行他们。然后进入下个循环,如果不再有事件处理,就退出进程。

八、事件驱动的实质:通过主循环加事件触发的方式来运行程序

九、node高性能的一个原因:通过事件驱动的方式处理请求,无须为每个请求创建额外对应线程,可以省掉创建线程和销毁线程的开销,同时操作系统在调度任务时因为线程较少,上下文切换的代价很低。

相关文章

  • 深入浅出nodejs记录

    要看的书太多,时间太紧看不完,挑核心的部分记录一下。 一、单线程最大好处是不用像多线程编程那样处处在意状态同步问题...

  • 登录验证必不可少的session

    晚上学习了《深入浅出nodejs》的session章节,分享一些简单的收获和发现。 cookie可以用来记录状态,...

  • #第十四天#RESTful和页面渲染

    今天看了《深入浅出nodejs》的P207-P235,内容有点多,需要消化的知识点也很多,今天先记录一下RESTf...

  • 2018 第一本书

    阿啦嘞:《深入浅出nodejs》《JS promise迷你书》 不折腾:[ √ ] 《王小波系列》 llp:《皮...

  • 闲聊c/c++ 4: 征服优雅、高效的Libuv库之初识篇

    这一系列文章主要分析nodejs中的核心库Libuv。 我的参考书: 朴灵的深入浅出nodejs Jeffrey ...

  • 浅谈node.js模块引入机制

    原文链接 之前笔者对nodejs中的模块是如何引入的也是一头雾水,读了一本《深入浅出nodejs》,加上自己工作时...

  • 常用链接

    html内容转换jade模版 用户脚本(浏览器插件) Tampermonkey 深入浅出Nodejs读书笔记 s...

  • 近期学习规划

    读完nodejs深入浅出 读完图解HTTP 了解 CommonJS,AMD 规范 学习函数式编程,这个时候可以不局...

  • 深入浅出nodejs

    1.node特点 高性能web服务器的要点:事件驱动、非阻塞I/O 单线程单线程的优点在于:不用在意状态同步问题没...

  • nodejs深入浅出

    1.5.1 Node应用场景 Node面向网络并且擅长I/O,能够有效地阻止起更多的硬件资源,从而提供更好的服务I...

网友评论

      本文标题:深入浅出nodejs记录

      本文链接:https://www.haomeiwen.com/subject/sysduftx.html