This is usable for locking/unlocking
<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// this part is protected against multiple/multithread run
apcu_delete('lock_name');(PECL apcu >= 4.0.0)
apcu_add — 新規の変数をデータ領域にキャッシュする
まだ保存されていない場合にのみ、変数をデータ領域にキャッシュします。
注意: PHP の他の多くの仕組みと異なり、apcu_add() を用いて格納された変数はリクエストを超えて (その値がキャッシュから取り除かれるまで)持続します。
key
       この名前を用いて変数を格納します。key は
       キャッシュ内で一意です。そのため、apcu_add()
       を使用して同一の key 
       で新しい値を格納しようとしても、それは保存されません。
       かわりに false が返されます (これが、apcu_add()
       と apcu_store() の唯一の相違点です)。
      
var格納する変数。
ttl
       有効期間。var は、キャッシュに
       ttl 秒間だけ格納されます。
       ttl が経過すると、格納されている変数は
       (次のリクエスト時に)キャッシュから削除されます。
       ttl が指定されていない(あるいは
       ttl が 0 の場合)は、
       キャッシュから手動で削除される・あるいはキャッシュに存在できなくなる
       (clear, restart など)まで値が持続します。
      
values名前をキー、変数を値に指定します。
何かがキャッシュに正しく追加されたときに TRUE、それ以外の場合に FALSE を返します。 二番目の構文は、エラーになったキーを含む配列を返します。
例1 apcu_add() の例
<?php
$bar = 'BAR';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
?>上の例の出力は以下となります。
string(3) "BAR" string(3) "BAR"
This is usable for locking/unlocking
<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// this part is protected against multiple/multithread run
apcu_delete('lock_name');