【发布时间】:2013-08-12 18:55:03
【问题描述】:
我正在为 Meteor 应用程序编写服务器端逻辑,该应用程序必须更新内存状态以响应来自客户端的请求。此应用程序需要强大的并发保证 - 特别是,我想确保一次只执行一个更新。
我试图弄清楚 Meteor 的并发模型是否支持这一点。文档提到 Meteor 是多线程的(这将是一个问题),但是在搜索之后,我得到的印象是 Meteor 实际上使用了光纤(显式调度的线程)。如果这是真的,那么只要我的代码中需要以原子方式运行的部分不进行任何 Meteor 调用(这涉及 IO 并因此产生执行锁),我就是安全的。
是这样吗?在哪里可以找到有关 Meteor 并发模型的更多信息?
【问题讨论】:
-
我认为你应该自己为你的内存存储实现锁,或者你可以使用 mongo 原子操作。
-
如果有帮助,纤维库的文档在 [这里][1] [1]:github.com/laverdet/node-fibers
-
@Denis 如果我可以实现内存锁,因为非 IO、非屈服操作是原子的,那么我什至不需要它们用于这个应用程序。无论如何,我想知道 Meteor 中的并发如何为未来的信息工作。这些东西应该在某个地方清楚地记录下来;不是。我可能最终会浏览 Meteor 源代码。
标签: javascript multithreading concurrency meteor fibers