首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript内存模型

Javascript内存模型
EN

Stack Overflow用户
提问于 2011-11-27 11:07:31
回答 1查看 2.1K关注 0票数 2

是的,我知道在Javascript中要求一个正式的内存模型是没有希望的,所以我满足于“所有浏览器都遵循这些规则”之类的东西。

我的问题如下:我必须以定义的时间间隔向服务器发送事件,但在这样做的同时可能会将事件添加到我的数组中,即:

代码语言:javascript
复制
function storeEvent(event) {
    // may be called at any time
    storedEvents.push(event);
}

function broadcastEvents() {
    if (storedEvents.length !== 0) {
        var eventString = JSON.stringify(storedEvents);
        storedEvents = [];
        // send eventString to server
    }
    window.setTimeout(broadcastEvents, BROADCAST_TIMER);
}

这里面有一个明显的竞争条件,甚至没有考虑到丢失的内存屏障。

该怎么办呢?这里确实缺少Java内存模型..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-27 11:09:36

没有任何竞争条件。

浏览器中的所有JavaScript代码都是单线程的。

setTimeout回调将在UI线程上运行,而它不执行任何其他操作。

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

https://stackoverflow.com/questions/8283340

复制
相关文章

相似问题

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