私は Node JS に魅了され、飛び込み始めましたが、Java のバックグラウンドから来て、共有変数に依存して追跡する非同期呼び出しのチェーンが行われる以下のような例に混乱しています (したがって、いつそれらはすべて別のアクションを実行するために完了しています)。この質問が基本的すぎる場合は申し訳ありませんが、これについて検索して説明が見つかりませんでした。おそらく正しい用語を使用していません。
Javaでこのようなことをした場合、衝突を避けるために変数nを同期させる必要があります。そうしないと、その整合性が損なわれる可能性があります(これは、私が読んだより複雑な例に基づいた疑似コードです。完璧ではない場合は申し訳ありません)
var n = 100
var funct_a = function(callback) {
return function() {
if (n == 0)
callback()
else
n--
}
}
for ( a in someArray) {
funct_a (function() {
//do something with variable a...
})
}
これらは1つの「スレッド」でのみ実行されているため、実際には異なるCPUコアで実行されておらず、変数に同時に書き込むことはできませんか? これは、これらのタイプの競合を解決するいくつかのコアノードサーバーロジックを除けば、私にとって唯一の論理的な説明のようです. これに光を当てるための情報は大歓迎です。