• 高级IO


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

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

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

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

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

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

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

    2、文件锁

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

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

        !)通过cmd参数

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

                可以去直接设置锁

                可以去等待设置锁成功

                但三者不是原子操作

  • 相关阅读:
    Atitit. 衡量项目规模 包含的类的数量 .net java类库包含多少类 多少个api方法??
    Drawable 中getIntrinsicWidth
    js播放音乐
    Parcelable和Parcel
    标题栏和状态栏
    android振动效果的实现
    Android位置服务和Google地图API初解
    TranslateAnimation详解
    android真机调试
    常见的Android图标大小
  • 原文地址:https://www.cnblogs.com/justart/p/7802211.html
Copyright © 2020-2023  润新知