zoukankan      html  css  js  c++  java
  • nodejs学习笔记_nodejs和PHP在基础架构上的差别--共享状态的并发

    绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明确node内部做出的权衡,以及node应用性能好的原因。

    node 为javascript引入了一个复杂的概念,:共享状态的并发。


    node採用一个长期执行的进程

    而php在apache中会产生多个进程

    例如以下图所看到的:

    代码验证:

    PHP:

    <?php
    $i = 0;
    $i++;
    echo $i

    nodejs:

    var http = require('http');
    var i=0;
    http.createServer(function() {
         i++
         console.log(i)     
    }).listen(3000,'127.0.0.1');
    

    当使用浏览器请求这两个地址的时候
    PHP会一直输出 1
    Node.js会输出 1 2 3 4 5 6 ...
    通过图片,能够看出php运行完程序以后,下次运行会又一次申请一个新的线程。变量每次运行都会申请内存,赋值为0,加1,因此输出都是1
    而nodejs会一直维持一个长期执行的进程,变量i在内存中一直存在,每次执行都会加一,因此会出现1 2 3 4 5 6 ...

    apache产生的新的线程每次都会刷新状态,$i会被又一次赋值,
    node则不会,每次都会给$i加1
    因此,node中,须要对回调函数改动内存中的变量的时候要特别小心。

  • 相关阅读:
    JAVA 多线程开篇 -从按顺序打印ABC开始
    学英语
    称砝码
    JAVA BST的实现
    JAVA 引用
    常用查找算法的总结
    bootstrap学习之二-组件
    bootstrap学习之一_bootstrap css
    前端学习——css实用技术
    前端学习——css基础知识,选择器与html模板、值得收藏的html标签
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3849330.html
Copyright © 2011-2022 走看看