http://www.tuxradar.com/practicalphp/8/11/0の簡単なテスト スクリプトを使用してい ます。
<?php
$fp = fopen("foo.txt", "w");
if (flock($fp, LOCK_EX)) {
print "Got lock!\n";
sleep(10);
flock($fp, LOCK_UN);
}
私は5つのシェルを開き、スクリプトを次々に実行しました。スクリプトはロックが解放されるまでブロックし、解放された後も続行します
私はPHPのものにあまり興味がありませんが、私の質問は: flock() が取得される順序を知っている人はいますか?
e.g.
t0: process 1 lock's
t1: process 2 try_lock < blocking
t2: process 3 try_lock < blocking
t3: process 1 releases lock
t4: ?? which process get's the lock?
キューのような単純な決定論的な順序はありますか、それともカーネルは「より高度なルール」によって「ただ」選択しますか?