1

私の疑問: 一連のステートメントがアトミックな方法で実行されることを保証できる方法があるかどうか。しかし、ロックを使用する必要がないことは確かです。それで、それを行うエレガントな方法はありますか。たとえば、phpで同じことをする必要があります。例: 実行するステートメント:

  1. APC キャッシュからキーを取得します。
  2. その上で何らかの操作を行います..インクリメントするとしましょう。
  3. それを再度キャッシュに保存します。

一度に多くのプロセスが同じものを更新できるため、これらのことをアトミックに行う必要があります。

ありがとう、ヴァルン

4

2 に答える 2

0

セマフォはそれを行う方法の 1 つです。

http://php.net/manual/en/intro.sem.php

于 2013-01-28T08:53:21.747 に答える
0

ロック、ミューテックス、セマフォはすべて、マルチタスク/並列コンピューターで原子性を保証するために発明されました。

ロックを最適化する方法はいくつかあります。最悪の場合は、ループ内でリソースの準備が整うのをビジー状態で待機することです。より良いソリューションには、リソースを取得するためのシグナリング/キューイングが含まれます。

この時点で、ロックせずに原子性を達成するためにできることはあまりないことは明らかです。特に、単一の CPU コアであっても、特定の瞬間に複数の命令が実行されている場合 (パイプラインと呼ばれます)

とはいえ、これ以前ここで尋ねられました: APC キャッシングとアトミック操作

于 2013-01-29T22:30:38.043 に答える