gpt4 book ai didi

javascript - 同时访问变量

转载 作者:行者123 更新时间:2023-11-29 10:28:27 24 4
gpt4 key购买 nike

我需要从多个回调(事件处理程序)中增加全局变量,这些回调可能同时触发。我是否需要担心同时访问该变量?是否有类似 C# 中的 Interlocked.Increment 的模拟?

最佳答案

Is there any analog of Interlocked.Increment in JavaScript?

是的,但您的场景不需要它。¹

I mean I need to increment global value from several different callbacks (event handlers), which may fire simultaneously.

它们永远不会同时开火。浏览器上的 JavaScript 在每个全局环境中只运行一个线程(规范称之为 realm ),有时在多个全局环境中共享同一个线程。即使处理程序的事件同时触发或所有处理程序都响应同一事件,对它们的调用也会在任务队列中排队(JS 规范称其为作业队列,HTML 规范称其为任务队列),并且队列一次处理一个任务/作业。

Do I need to worry about simultaneous access to that variable?

不在你的场景中,不。


¹ 仅供引用:您仅在分享时需要它 SharedArrayBuffer具有多个线程的实例(在浏览器上,将通过网络 worker )。这是Atomics.add并对类型化数组进行操作,该数组可能由 SharedArrayBuffer 支持。

关于javascript - 同时访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52411476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com