web-dev-qa-db-ja.com

JavaScriptでインクリメントはアトミック操作ですか?

JavaScriptでインクリメントはアトミック操作ですか? 1つのスレッドが++i;にアクセスし、同時に別のスレッドが操作にアクセスし始めた場合、問題はありますか?

10
user7474176

javascriptでは、関数は常に完了まで実行されます。つまり、関数が完全に実行されるよりも実行されている場合は、他の関数が呼び出された後、ステートメント間でインターリーブする可能性はありません(ただし、Javaそれは異なります)、非同期実行と混同している場合は、非同期は後で並列ではないことを意味することを常に覚えているので、問題が発生すると、答えは、問題に直面することはなく、完全にアトミックになります操作。

10
Pranoy Sarkar

Javascriptはシングルスレッドであるため、ディールロックやダーティリードの問題について心配する必要があります。 JavaScriptがマルチスレッドをサポートしないのはなぜですか?

2
Munish

Javascriptはマルチスレッドをサポートしていません。 Webワーカーがいる可能性がありますが、ワーカーは変数を共有しないため、このケースには当てはまりません。