nodejs 单线程是不需要考虑资源同步吗?
最简单的一个例子(因为 nodejs 是基于事件的):
触发事件 A 的时候:
if(someArray.length == 2)
do something;
触发事件 B 的时候:
someArray.push(o);
假如某个时候,几乎同时触发事件 A 和 B :
结果 1 ):完全执行完某个事件的代码,再执行另一个事件
结果 2 ):资源不同步。。
求解……谢谢各位。
1
dqh3000 2015-12-13 20:21:19 +08:00
单线程
结果 1 |
2
chemzqm 2015-12-13 20:33:04 +08:00 1
除非你用 cluster ,否则事件只可能一个接一个执行, event loop 就这么简单
|
3
whimsySun 2015-12-13 21:27:35 +08:00
不可能存在这个问题咯
|
4
indexof 2015-12-13 22:48:20 +08:00
单线程,就意味着,一个时刻只做一件事。也就是说每次只执行一个函数。
|
5
will0404 2015-12-14 09:01:52 +08:00 via iPhone
是一个接一个执行的 如果你需要严格的执行顺序 那就用回调嵌套
|