cpu的线程: 就代表同一时间可以做多少件事。
资源独占: 某个资源同一时间只能一个线程使用, 那就需要通过添加 排他锁, 来防止其他人使用。
共享锁: 一个资源可以被很多人查看, 但是查看的时候不能改。
//写文件的时候, 就需要添加 排他锁, 放置其他线程同时写入出现错乱
function put($path, $data) {
$handle = fopen($path, 'w');
//flock(); 加锁. 参数2代表锁的类型.
//LOCK_EX: 排他锁
if (flock($handle, LOCK_EX)) {
//写入内容
fwrite($handle, $data);
//LOCK_UN: 解锁
flock($handle, LOCK_UN);
}
fclose($handle);
}
//共享锁: 文件在被阅读的时候, 其他线程只能读不能改
function get($path) {
$handle = fopen($path, 'r');
//LOCK_SH: share共享
if (flock($handle, LOCK_SH)) {
//fread() 按字节读
$text = fread($handle, filesize($path));
//解锁
flock($handle, LOCK_UN);
}
fclose($handle);
return $text;
}
// echo get('d:/php7.0/php.ini');
put('abc.txt', 'AAAAAAAAAAA');