iOS 函数积累


头文件: units. h
语法:  void usleep( int micro_seconds);
返回值 : 无
内容说明: 本函数可暂时使程序中止执行. 参数micro_seconds 为要暂停的微妙数(us). 
说明:
      这个函数不能工做在 windows 操做系统中. 用在 Linux 的测试环境下面
      参见:usleep() 与 sleep() 相似, 用于延迟挂起进程. 进程被挂起放到 reday queue 中.
      通常状况下, 延迟时间数量级是秒 s 的时候, 尽量使用 sleep() 函数; 若是延迟时间为几十毫秒ms 或者更小的时候, 尽量使用 usleep() 函数. 这样才能最佳的利用 cpu 时间.
 
时钟单位换算:
 微妙(us:英语 microsecond)
1us =  1/ 1000000 s;
1s = 1000ms;  //  毫秒
1ms =  1000 us;  //  微秒
1us =  1000 ns;   //  纳秒
1ns =  1000 ps;   //  皮秒

 

 flock() 函数:
flock() 函数原型:  int flock( int fd,  int operation);
其中, 参数 fd 表示文件描述符; 参数 operation 指定要进行的锁操做, 该参数的取值有以下几种:
LOCK_SH: 表示要建立一个共享锁, 在任意时间内, 一个文件的共享锁能够被多个进程拥有;
LOCK_EX: 表示建立一个排他锁, 在任意时间内, 一个文件的排它锁只能被一个进程拥有;
LOCK_UN: 表示删除该进程建立的锁;
LOCK_MAND: 它主要是用于共享锁模式强制锁, 它能够与 LOCK_READ 或则 LOCK_WRITE 联合使用, 从而表示是否运行并发的读操做或者并发的写操做.
一般状况下, 若是锁清秋不能被当即知足, 那么系统调用 flock() 会阻塞当前进程. 好比: 进程想要请求一个排它锁, 但此时, 已经有其余进程得到这个锁, 那么该进程将会被阻塞. 若是想要在没有得到这个排它锁的状况下不阻塞该进程, 能够将 LOCK_NB 和 LOCK_SH 或者 LOCK_EX 联合使用, 那么系统就不会阻塞该进程. flock() 所加的锁会对整个文件起做用. 
 
注意:
1. 对于文件的 close() 操做回事文件锁失效;
2. 同理, 进程结束后文件锁失效;
3. flock() 的 LOCK_EX 是劝告锁, 系统内核不会强制检查锁的状态, 须要在代码中进行文件操做的地方显示检查才能生效. 
相关文章
相关标签/搜索