php文件锁

  1. cpu的线程: 就代表同一时间可以做多少件事。
  2. 资源独占: 某个资源同一时间只能一个线程使用, 那就需要通过添加 排他锁, 来防止其他人使用。
  3. 共享锁: 一个资源可以被很多人查看, 但是查看的时候不能改。
//写文件的时候, 就需要添加 排他锁, 放置其他线程同时写入出现错乱
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');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值