如何确保一些语句以原子方式执行而不使用锁?

时间:2013-01-28 08:48:10

标签: php apc

我怀疑:如果有办法确保以原子方式执行一系列陈述。但有一点可以肯定我们不需要使用锁。那么,有没有任何优雅的方式来做到这一点。例如,我需要在php中做同样的事情。 例如: 要执行的陈述:

  1. 从APC缓存中获取密钥。
  2. 对此做一些操作..让我们说增加它。
  3. 再次将其保存到缓存中。
  4. 我需要它来做这些事情的原子,因为在许多进程可以同时更新同样的东西。

    谢谢, VARUN

2 个答案:

答案 0 :(得分:0)

信号量是实现这一目标的方法之一:

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

答案 1 :(得分:0)

Locks,Mutexes,Semaphores都是为了保证多任务/并行计算机中的原子性而发明的。

有很多方法可以优化锁定:你可以做的最糟糕的事情就是忙于在循环中等待资源准备好;而更好的解决方案涉及信令/排队以获取资源。

在这一点上应该很清楚,当没有锁定时,你可以做很多事情来实现原子性,当有多个指令时, 特别是 及时执行,即使在单个CPU核心(称为流水线

那就是说,已经在此之前被问过:APC caching and atomic operations