使用多处理和 Python 时锁定文件



我有一个main.py文件。此文件使用multiprocessing执行另一个名为function.py的文件。第二个使用threading将函数f应用于numpy array的每个组件。function.py读取(在所有进程中仅读取一次)文件,file.txt,读取f的一些数据,然后清除它(写入空文件)。我是否需要function.pyfile.txt锁定文件,以避免main.py执行function.pyfile.txt读写而创建N进程的问题?如果是这样,怎么能做到?

最后我用semaphore得到了它.

是的,在某种程度上它必须被锁定。 让多个进程读取文件是没有问题的,只要它们只读取文件。一旦有东西写入文件,您必须确保读取和写入按所需的顺序进行。

锁定可以通过使用以原子方式创建的锁定文件来完成。进程成功创建锁定文件后,将获得对文本文件的访问权限。使用文本文件完成该过程后,它将删除锁定文件。这可确保在给定时间只有一个进程可以访问文本文件。

相关内容

  • 没有找到相关文章

最新更新