zoukankan      html  css  js  c++  java
  • linux的flock命令(文件锁)

    mysql,如果多个请求同时,请求操作一个表,一个存,一个读,就会造成脏读.所以有了事务,有了锁表

    linux在多个进程同时操作同一份文件的时候,很容易导致文件混乱,这时候就需要锁,来保证文件的完成性.

    flock主要三种操作类型:
         lock_sh,常被用作读共享锁;
         LOCK_EX,只能被一个进行使用,常被用作写锁;
         LOCK_UN,释放锁;
     public function logResult($word='') {
            $fp = fopen("log.txt","a");
            flock($fp, LOCK_EX) ;//进程会被阻塞,直到锁被释放掉
            fwrite($fp,"执行日期:".strftime("%Y%m%d%H%M%S",time())."
    ".$word."
    ");
            flock($fp, LOCK_UN);
            fclose($fp);
        }

    使用共享锁LOCK_SH,如果是读取,不需要等待,但如果是写入,需要等待读取完成。

    使用独占锁LOCK_EX,无论写入/读取都需要等待。

    LOCK_UN,无论使用共享/读占锁,使用完后需要解锁。

    LOCK_NB,当被锁定时,不阻塞,而是提示锁定。

  • 相关阅读:
    iOS学习-UITextField
    iOS学习-UIButton->Block
    iOS学习-UIButton
    iOS常用技术-微信下标栏
    学习进度表
    学习进度表
    读后感
    我的学习进度表
    调查问卷
    我的学习进度表
  • 原文地址:https://www.cnblogs.com/hanshuai0921/p/6739464.html
Copyright © 2011-2022 走看看