php文件锁定写实例解析

本文以一个实例说明PHP文件处理多线程写入的方法。具体代码如下:


功能file_write(file_name美元美元美元,文本模式= 'a',超时= 30美元){
为处理= fopen(file_name美元,$模式);
当($超时> 0){
如果(羊群(合处理,lock_ex)){ / /独占锁
超时—;
睡眠(1);
}
}
如果(超时时间> 0){
fwrite(合处理,文本的美元。');
羊群(合处理,lock_un);
Fclose($处理); / /释放锁操作
返回true;
}
返回false;
}




羊群的句柄(int句柄,int操作)函数必须是已打开的文件指针。

操作可以是以下值之一:

获取一个共享锁(读程序),设置操作lock_sh(在PHP 4.0.1设置为1版)。

获取独占锁(写程序),设置操作lock_ex(设置为2在PHP 4.0.1版本)。

释放锁(是否共享或独占),设置操作lock_un(设置为3在PHP 4.0.1版本)。

如果你不想让羊群()被锁定时,添加lock_nb操作(设置为4在PHP 4.0.1版本)。

此外,Fclose()是用来释放锁的操作和调用的代码完成时。