- 论坛徽章:
- 1
|
一个简单的测试:
- <?php
- define('PHP_LOCK_FILE','php.lock');
- ini_set('display_errors',true);
- ini_set('error_reporting',E_ALL);
- global $php_lock_fp;
- $php_lock_fp = @fopen(PHP_LOCK_FILE, "w+") or die("Couldn't open the lock file !\n");
- if (flock($php_lock_fp, LOCK_EX + LOCK_NB)) { // 进行排它型锁定
- printf("Lock the lock file\nMy PID is %d\n",getmypid());
- register_shutdown_function('php_release_lock');
- fwrite($php_lock_fp,getmypid());
- } else {
- @fclose($php_lock_fp);
- exit("Couldn't lock the file !\n");
- }
- function php_release_lock()
- {
- global $php_lock_fp;
- if(is_resource($php_lock_fp)){
- flock($php_lock_fp, LOCK_UN); // 释放锁定
- @fclose($php_lock_fp);
- printf("Release lock!\n");
- }
- @unlink(PHP_LOCK_FILE);
- printf("php exit!\n");
- }
- sleep(5);
- ?>
复制代码
你可以测试,运行两次。
或者运行过程中,打开生成的文件看看。 |
|