increment 是JavaScript中的原子操作吗?

Is increment an atomic operation in JavaScript?

增量是JavaScript中的原子操作吗?如果一个线程正在访问 ++i;同时另一个开始访问操作会不会有问题?

Javascript不支持多线程。它可能有网络工作者,但你的问题不适用于这种情况,因为工作者不共享变量。

Javascript是单线程的,所以你需要担心deallocks或者脏读问题。 Why doesn't JavaScript support multithreading?

in Javascript 总是一个函数 运行s 完成,这意味着如果一个函数 运行ning 比它 运行 完全,只有在另一个函数之后将被调用,语句之间没有交错的机会(但在 java 的情况下它是不同的),如果您对异步执行感到困惑而不是始终记住异步意味着以后不并行,所以,来到你的问题,答案是,不,你不会遇到任何问题,这将是完全原子操作。

是的,会有问题。即使Javascript是单线程,i++也是(writer + modify + write)3步操作,所以当有人在取i变量的时候,其他人可以把修改后的i设置到变量区。为了解决这个问题,您可以使用原子变量而不是常规变量。