美文网首页
深入浅出node-异步IO

深入浅出node-异步IO

作者: strong9527 | 来源:发表于2018-09-25 17:23 被阅读19次

    node在多线程和单线程之间的选择: 利用单线程,原理多线程的死锁、状态同步等问题;利用异步IO,让线程原理阻塞,以更好的利用cpu

    文件描述符:

    操作系统对计算机进行了抽象,将所有输入和输出设备抽象为文件。内核在进行文件I/0操作时,通过文件描述符进行管理,而文件描述符类似于应用程序与系统内核之间的凭证。应用程序如果需要进行IO调用,需要先打开文件描述符,然后再根据文件描述符去实现文件的数据读写。

    node自身的执行模型——事件循环,正是它使得回调函数十分普遍。

    在进程启动时,node便会创建一个类似于while的循环,每执行一次循环体的过程我们成为tick。

    小结:

    从前面实现异步IO的过程中,我们可以提取出异步IO的几个关键词:单线程、事件循环观察者和IO线程池。这里单线程和IO线程池之间看起来有点悖论的样子。由于我们知道javascript是单线程的,所以按常识很容易理解为它不能充分利用多核cpu。事实上,在node中,除了javascript是单线程外,node自身其实是多线程的,只是IO线城市用的cpu线程较少。另一个需要重视的观点则是,除了用户代码无法并行执行外,所有的IO(磁盘和网络IO)则是可以并行起来的。

    相关文章

      网友评论

          本文标题:深入浅出node-异步IO

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