zoukankan      html  css  js  c++  java
  • linux wenjian

    文件锁是一种文件读写机制,在任何特定的时间只允许一个进程访问一个文件。利用这种机制能够使读写单个文件的过程变得更安全。

    在这篇文章中,我们将探讨Linux中不同类型的文件锁,并通过示例程序来理解它们之间的不同之处。

    我们将采取以下的例子来解释为什么需要使用文件锁。

    1、  进程“A”打开和读取一个文件,此文件包含账户相关的一些信息。

    2、  进程“B”也打开了这个文件,并读取了文件中的信息。

    3、  现在,进程“A”更改了其副本中的一条余额记录,并将其写入文件。

    4、  此时,进程“B”并不知道上次读取的文件已经被更改,它还保存着原始的文件副本。然后,进程“B”更改了“A”操作的那条相同的记录,并将记录写入文件。

    5、  此时,文件中将只保存了进程“B”更改过的记录。

    为了避免这种事情发生,就要使用文件锁来确保操作的“序列化”。

           翻阅参考资料,你会发现文件锁可以进行很多的分类,最常见的主要有锁与写锁,前者也叫共享锁,后者也叫排斥锁,值得注意的是,多个读锁之间是不会相互干扰的,多个进程可以在同一时刻对同一个文件加读锁;但是,如果已经有一个进程对该文件加了写锁,那么其他进程则不能对该文件加读锁或者写锁,直到这个进程将写锁释放,因此可以总结为:对于同一个文件而言,它可以同时拥有多个读者,但是在某一时刻,他只能拥有一个写者。

          根据内核行为来分,文件锁可以分成劝告锁强制锁两大类。

    文件系统级别的锁有四种,最基本的两种是劝告锁和强制锁,剩下的两种是强制锁的变种。

         应用级别上对锁的操作有两种,加读锁,或者加写锁(又叫共享锁与独占锁)。

         那么,平时所说的加锁,实际上应该是在劝告锁或者强制锁上加读或者写锁。)

    http://blog.csdn.net/dragon_li_chen/article/details/17147911

    http://blog.sina.com.cn/s/blog_804354760101al6q.html

    http://oss.org.cn/html/97/n-69897.html

    http://blog.csdn.net/chong232/article/details/5881290

  • 相关阅读:
    aaa
    https://download.csdn.net/download/qq_33200967/10679367
    hadoop修改
    xa
    commit
    mybatis
    centos7 部署openstf
    selenium api docs
    Chrome浏览器在自动化中的应用
    selenium自动化测试各浏览器驱动下载地址
  • 原文地址:https://www.cnblogs.com/youxin/p/3584973.html
Copyright © 2011-2022 走看看