Memcache の追加はアトミックです。つまり、複数のプロセスが追加操作を同時に実行しており、競合状態は発生しません。これは、追加によって同時実行性が生成されないことを意味しますか? ?
光阴似箭催人老,日月如移越少年。
質問者さんは考えすぎです。 add の原子性のおかげで、同時実行性が保証されます。
add
基礎となる概念について十分に理解していません。
操作 の 同時実行性 は無意味であると言います。 リーリー
リーリー
同時並行はできないのですか?いいえ。 + 是原子性的,那么 +
+
アトミックな操作が存在しない世界を構想しています。
の例を見てみましょう: i++
i++
。 i 的值是 4
i
4
が同時にを実行しています。 (同時というのが並行性と呼ばれるものだと仮定しましょう) i++
に保存されます
に保存します
しかし、i++ はアトミックであるため、この状況には遭遇していません。
つまり、原子性は同時実行できないということですか?はい。
気にする人
ユーザーの観点から見ると、
システムaddであり、運用ではありません。
質問者さんは考えすぎです。
add
の原子性のおかげで、同時実行性が保証されます。基礎となる概念について十分に理解していません。
操作 の 同時実行性 は無意味であると言います。 リーリー
上記のステートメントはアトミックですか?上記のステートメントは同時に実行できますか?リーリー
上のものはどうでしょうか?リーリー
これはどうですか?同時並行はできないのですか?いいえ。
私たちは、+
是原子性的,那么+
アトミックな操作が存在しない世界を構想しています。
最も単純なの例を見てみましょう:
i++
。
現時点では、2つのスレッドi
的值是4
が同時にを実行しています。 (同時というのが並行性と呼ばれるものだと仮定しましょう)
どのように実装されていますか?i++
i++
まず i の値を取得します。
iの値に1を加えます
最終結果は i-
この時点で i++ がアトミックでない場合、2 つのスレッドがさまざまな実行順序で表示され、誤った結果が得られます。
に保存されます
最初のスレッドは i の値 4 を取得しました
2 番目のスレッドは i の値 4 を取得しました
最初のスレッドは i に 1 を加えて 5 を取得します
2 番目のスレッドは i に 1 を加えて 5 を取得します
最初のスレッドは 5 を i に格納します
2 番目のスレッドは 5 を i-
最終結果を取得します。私は 5 です。明らかにこの結果は間違っています。
に保存します
しかし、i++ はアトミックであるため、この状況には遭遇していません。
つまり、原子性は同時実行できないということですか?はい。
気にする人
ユーザーの観点から見ると、
操作はアトミックである必要があります。私たちが同意しているのはシステム
add
であり、運用ではありません。