我有一个关于如何flock()
工作的问题,尤其是在 python 中。我有一个打开串行连接的模块(通过os.open()
)。我需要使这个线程安全。在同一个模块中使用时,使其线程安全很容易threading.Lock()
,但是如果模块从不同的地方导入,它就会中断。
我正在考虑使用flock()
,但我无法找到足够的关于羊群如何工作的信息。我读到flock() 会在文件关闭后解锁文件。但是,如果 python 崩溃,是否存在保持文件打开的情况?
LOCK_EX
如果设置了锁定文件,究竟允许使用什么?只是锁定文件的模块?从最初运行的脚本中导入的任何模块?