• 高级IO


    设置文件描述符的属性,高级IO函数会根据属性,选择自己的行为比如直接返回还是阻塞

    进程自己多次加锁会用后面锁替换前面锁,一般用于多个进程之间的互斥或读共享,也就是说调用进程不会阻塞在自己持有的锁上。

    测试加锁,可以探测出哪个进程在某个文件的某个区域有锁,会用现有锁信息,更新锁结构

    1、io函数会检测目标文件的特性,如果是具有非阻塞的特性,那么当出现阻塞条件时,会立刻返回

          可以在循环中,去调用非阻塞的IO函数,但是在多用户多任务环境中,消耗CPU资源。

          阻塞时,进程调度可以暂时忽略阻塞状态的进程,节省CPU资源。

         程序可以利用多线程来解决应用吞吐量,但是引入了线程同步的复杂性。

    2、文件锁

         fcntl可以对文件进行加锁,可以支持对任意字节范围的加锁。

         支持读共享锁和写排它锁。读共享锁,允许加共享锁,但不允许加写排他。写排他不允许加读共享。

        !)通过cmd参数

                可以尝试去检查是否可以获得锁

                可以去直接设置锁

                可以去等待设置锁成功

                但三者不是原子操作

  • 相关阅读:
    enumerate()
    列表
    pycharm下getpass.getpass()卡住
    字符编码
    while_else
    guess_age
    数据类型
    python发展史
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:JSP的基本原理
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Web应用和web.xml文件
  • 原文地址:https://www.cnblogs.com/justart/p/7802211.html
Copyright © 2020-2023  润新知