Home > Backend Development > PHP Tutorial > nodejs学习笔记_nodejs和PHP在基础架构上的区别共享状态的并发

nodejs学习笔记_nodejs和PHP在基础架构上的区别共享状态的并发

WBOY
Release: 2016-06-23 13:57:35
Original
937 people have browsed it

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

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


node采用一个长期运行的进程

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

如下图所示:

代码验证:

PHP:

<?php $i = 0;$i++;echo $i
Copy after login

nodejs:

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

当使用浏览器请求这两个地址的时候

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中,需要对回调函数修改内存中的变量的时候要特别小心。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template