Home  >  Article  >  Backend Development  >  PHP file lock brief analysis

PHP file lock brief analysis

墨辰丷
墨辰丷Original
2018-05-25 11:11:091692browse

The general usage of file locks and mysql table locks in PHP is that only one person can operate it at the same time. This avoids the situation where multiple people operate the same file at the same time, which leads to data loss. Let me explain below. Let me introduce to you how to use PHP file lock.

The lock mechanism exists because of resource competition caused by concurrency. In order to ensure the effectiveness and integrity of operations, the concurrent state can be converted into a serial state through the lock mechanism. As one of the locking mechanisms, PHP's file lock is also designed to cope with resource competition. Assume an application scenario. In the case of large concurrency, fwrite is used to write data to the end of the file multiple times in an orderly manner. What will happen without locking? Multiple ordered write operations are equivalent to one transaction, and we need to ensure the integrity of this transaction at this time.

If we have two programs writing data to a file at the same time, in order to ensure the integrity of the data, we can add a file lock and let program 1 execute first. After program 1 is executed, unlock it and then Let program 2 execute. The implementation code is as follows:

$fp = fopen('test.txt',"a");
$count = 10;
if (flock($fp, LOCK_EX)) {
for($i=1;$i<$count;$i++){
fwrite($fp, &#39;text2_&#39;.$i."rn");
echo "test2".date(&#39;h:i:s&#39;) . "
";
sleep(1); 
echo "test2".date(&#39;h:i:s&#39;);
}
flock($fp , LOCK_UN);
}else{
echo "Couldn&#39;t lock the file !";
}
fclose($fp);


##The above is the entire content of this article, I hope it will help everyone learn Helps.


Related recommendations:

PHP implementationFile lockLock and unlock methods

PHP implementationFile lockand process lock

PHP implementation is based on File lockSolution to multiple processes at the same time Read and write a file

The above is the detailed content of PHP file lock brief analysis. 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