PHP4
について
ともかく、実際に動かしてみる
| num_01 は ループで無駄時間をとる | num_02は検証用 |
|---|---|
$filename = "num.dat";
$wait_sec = 5;
$handle = fopen($filename,'r+');
set_file_buffer($handle,0);
flock($handle,LOCK_EX);
$number = fgets($handle,1024);
if ($number){
$number = $number + 1;
}else{
$number = 1;
}
$finish_time = time() + $wait_sec;
while($finish_time > time()){
//無駄ループ
}
rewind($handle);
fputs($handle,$number);
flock($handle,LOCK_UN);
if (fclose($handle))
echo "File Close \n";
echo "約 $wait_sec 秒待つ \n";
echo "番号=$number \n";
|
$filename = "num.dat";
$handle = fopen($filename,'r+');
// set_file_buffer($handle,0);
// flock($handle,LOCK_EX);
$number = fgets($handle,128);
if ($number){
$number = $number + 1;
}else{
$number = 1;
}
rewind($handle);
fputs($handle,$number);
// flock($handle,LOCK_UN);
if (fclose($handle))
echo "File Close \n";
echo "番号=$number \n";
|
![]() |
|
![]() |
上記と同じ要領で実行する。 こんどは@とAの番号が異なっている。
つまり@が掴んでいる間は排他制御されている のでA以降はロックが解除されてから動作する。 ということのようです。 |
![]() |
|
| 目次に戻る |
2005/08/07 start ********* Last Update 2006/11/12 18:50 JST
| その他、お気づきの点がありましたら連絡先はこちらから |