zoukankan      html  css  js  c++  java
  • Node笔记五-进程、线程

    进程
      -每一个正在运行的应用程序都称之为进程
      -每一个应用程序都至少有一个进程
      -进程是用来给应用程序提供一个运行的环境
      -进程是操作系统为应用程序分配资源的一个单位
    线程
      -用来执行应用程序中的代码
      -在一个进程内部,可以有很多的线程
      -在一个线程内部,同时只能干一件事情
      -传统的开发方式大部分都是I/O阻塞的,需要多线程来个更好的利用硬件资源
      -容易造成错觉>线程越多越好
    多线程没落原因
      -线程之间共享某些数据,同步某个状态都很麻烦
      -创建线程耗费大量的资源和时间
      -线程数量有限
      -CPU只有一个(单核),因此多线程都是假的
      -CPU在不同线程之间转换,有个上下文转换,这个转换非常消耗时间

    非阻塞的优势

      -提高代码的响应效率

      -充分利用单核CPU的优势

      -改善I/O的不可预测带来的问题

    node在事件执行时顺序

      -代码如下

      

      -代码功能

        --查询文件是否存在,若是文件不存在,则直接创建文件

           

        --查询文件是否存在,若是文件存在,则先删除文件,再创建文件

          

       -根据代码以及运行结果可以看出,代码执行时间很短,当遇到fs.stat之类的函数时,会将函数放置队列中等待执行。

      -Node中将所有的阻塞操作交给了内部实现的线程池

      -Node本身主线程主要就是不断的往返调度

     web中的单线程

      -node和php等语言存在一定的区别,node在web中是单线程执行的

      

      执行上面的代码,每一个请求服务器,都会刷新count,

      若是对代码进行修改

      

      此时当请求页面次数count==8时,node就会进入死循环,使页面一直处于刷新状态,其他页面访问此端口也是如此。

  • 相关阅读:
    nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
    通过redis的monitor命令排除故障
    redis数据过期策略【转】
    PHP通用分页类page.php[仿google分页]
    简洁php的MVC框架
    Jquery插件开发之图片放大镜效果(仿淘宝)
    PHPCMS V9标签循环嵌套调用数据的方法
    虚拟主机服务器php fsockopen函数被禁用的解决方法
    PHPCMS V9 fsockopen 函数被禁用解决方案
    PHP IN_ARRAY 函数 使用需要注意的地方
  • 原文地址:https://www.cnblogs.com/nordon-wang/p/6047098.html
Copyright © 2011-2022 走看看