几种lock

lockf(), fcntl(2), and flock(2) 相容。
flockfile与flock没有关系。flockfile一般是用pthread_mutex实现的,一个带计数的锁,该锁被最近一次调用flockfile的线程所拥有。
调用flockfile时,如果该stream未被调用过flockfile或者拥有者不是当前线程,则尝试获取锁(此处可能会陷入等待),并将计数器初始化为1。
如果上次调用flockfile的就是此线程,则counter的计数加一。
调用funlockfile时,如果锁的拥有者不是当前线程,则释放锁,否则计数器减一。
计数器归0后,锁被释放。
flockfile适合被用于同一个进程内多个线程间的带计数的同步。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥