首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js表示框架是否为每个客户端连接创建了一个新的轻量级流程?

node.js表示框架是否为每个客户端连接创建了一个新的轻量级流程?
EN

Stack Overflow用户
提问于 2016-03-03 21:16:40
回答 1查看 98关注 0票数 1

假设此代码在node.js快速应用程序中运行。假设两个不同的客户端请求索引资源。打电话给这些客户端ClientA和ClientB。假设ClientA在ClientB之前请求索引资源。在这种情况下,控制台将记录ClientA的值1,控制台将记录ClientB的值2。我的主要问题是:每个客户端请求是否都有自己的轻量级进程,路由器是这些进程之间的共享代码部分,路由器可见的变量(而不是路由器的一部分)是共享堆,当然每个客户端都得到自己的堆栈吗?我的子问题是:如果我的主要问题是肯定的,那么在本例中,每个客户端都必须排队等待锁global_counter,然后再递增,对吗?

代码语言:javascript
复制
var global_counter = 0;

router.get('/', function (req, res) {

    global_counter += 1;

    console.log(global_counter);        

    res.render('index');

});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-03 21:46:03

不是的。单线程/进程并发是通过工作队列来完成的。将内容输入工作队列的一些方法包括setTimeout()和nexttick()。查看http://howtonode.org/understanding-process-next-tick

一次只运行一件事情,所以不需要做任何锁定。

让你的大脑适应这个想法需要一段时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35783188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档