Home  >  Article  >  Database  >  File lock in php solves the problem of multiple processes reading and writing a file at the same time

File lock in php solves the problem of multiple processes reading and writing a file at the same time

黄舟
黄舟Original
2017-09-08 14:43:041298browse

The example in this article describes how PHP solves the problem of multiple processes reading and writing a file at the same time based on file locks. Share it with everyone for your reference, the details are as follows:

First of all, PHP supports processes but does not support multi-threading (this should be clarified first). If it is for file operations, in fact, you only need to give the file It can be solved by adding a lock. No other operations are required. PHP flock has already done it for you.

Use flock to lock the file before writing, and unlock it after writing. This allows multiple threads to read and write a file at the same time to avoid conflicts. It’s probably the following process


/*
*flock(file,lock,block)
*file 必需,规定要锁定或释放的已打开的文件
*lock 必需。规定要使用哪种锁定类型。
*block 可选。若设置为 1 或 true,则当进行锁定时阻挡其他进程。
*lock
*LOCK_SH 要取得共享锁定(读取的程序)
*LOCK_EX 要取得独占锁定(写入的程序)
*LOCK_UN 要释放锁定(无论共享或独占)
*LOCK_NB 如果不希望 flock() 在锁定时堵塞
/*
if (flock($file,LOCK_EX))
{
fwrite($file,'write more words');
flock($file,LOCK_UN);
}
else
{
//处理错误逻辑
}
fclose($file);
)

The above is the detailed content of File lock in php solves the problem of multiple processes reading and writing a file at the same time. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn