[PHP-users 19881]Re: flock関数による排他ロックについて
Osamu Shigematsu
shige @ ravi.ne.jp
2004年 1月 14日 (水) 14:22:09 JST
重松です。
> LOCK_SH
> LOCK_EX
> この2つの違いが分かりません。
> マニュアルには説明書きがあるのですが理解できないです…。
SH は複数でロックを共有できますが、
EX は単一のプロセスのみがロックできます。
> LOCK_NB
> これの使い道が分かりません。
ブロックしません。
普通は、ロックできるまで待ちますが、このフラグを指定すると待たないです。
ロックできなければエラーが帰るので、ロックできなかったことを知ることがで
きます。
for ($i = 0; !($result = flock($fd, LOCK_EX | LOCK_NB)) && $i < 10; ++$i)
{
sleep(1);
}
のようにすると、ロックを試み、失敗したら 1 秒待ち、再度 10 回まで
ロックを試みると思います。
# 試してません。
--
Osamu Shigematsu
http://www.ravi.ne.jp/%7eshige/
PHP-users メーリングリストの案内