1

我的疑问:是否有一种方法可以确保一系列语句以原子方式执行。但有一件事是确定我们不需要使用锁。那么,有什么优雅的方法可以做到这一点。例如我需要在 php.ini 中做同样的事情。例如:要执行的语句:

  1. 从 APC 缓存中获取密钥。
  2. 对此进行一些操作..让我们说增加它。
  3. 再次将其保存到缓存中。

我需要它来原子地做这些事情,因为很多进程可以同时更新同一件事。

谢谢,瓦伦

4

2 回答 2

0

信号量是其中一种方法:

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

于 2013-01-28T08:53:21.747 回答
0

锁、互斥体、信号量都是为了保证多任务/并行计算机中的原子性而发明的。

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

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

也就是说,这里之前已经问过这个问题:APC 缓存和原子操作

于 2013-01-29T22:30:38.043 回答