Python 的 fcnt 模块提供了一个名为 [flock][1] 的方法来证明文件锁定。它的描述是这样的:
对文件描述符 fd 执行锁定操作 op(也接受提供 fileno() 方法的文件对象)。有关详细信息,请参阅 Unix 手册 flock(2)。(在某些系统上,使用 fcntl() 模拟此函数。)
查找flock的linux man page,只提到了跨进程锁定,例如:
如果另一个进程持有不兼容的锁,则对 flock() 的调用可能会阻塞。要发出非阻塞请求,请在上述任何操作中包含 LOCK_NB(通过 ORing)。
所以我的问题是: flock() 是否也提供线程安全锁定并锁定同一进程内的多个线程以及来自不同进程的线程?
[1]:http ://docs.python.org/library/fcntl.html#fcntl.flockfunction 使用 fcntl() 模拟