Nodejs 问题: nodejs 资源同步的问题

2015-12-13 19:51:18 +08:00
 lawlietxxl

nodejs 单线程是不需要考虑资源同步吗?
最简单的一个例子(因为 nodejs 是基于事件的):

触发事件 A 的时候:
if(someArray.length == 2)
do something;

触发事件 B 的时候:
someArray.push(o);

假如某个时候,几乎同时触发事件 A 和 B :
结果 1 ):完全执行完某个事件的代码,再执行另一个事件
结果 2 ):资源不同步。。

求解……谢谢各位。

2724 次点击
所在节点    Node.js
5 条回复
dqh3000
2015-12-13 20:21:19 +08:00
单线程
结果 1
chemzqm
2015-12-13 20:33:04 +08:00
除非你用 cluster ,否则事件只可能一个接一个执行, event loop 就这么简单
whimsySun
2015-12-13 21:27:35 +08:00
不可能存在这个问题咯
indexof
2015-12-13 22:48:20 +08:00
单线程,就意味着,一个时刻只做一件事。也就是说每次只执行一个函数。
will0404
2015-12-14 09:01:52 +08:00
是一个接一个执行的 如果你需要严格的执行顺序 那就用回调嵌套

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/243249

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX